第十四课、线性表的本质和操作-----------------狄泰软件学院

一、线性表(List)的表现形式

1、零个或者多个数据元素组成的集合

2、数据元素在位置上是有序排列的

3、数据元素的个数是有限的

4、数据元素的类型必须相同

二、线性表(List)的抽象定义

1、线性表是具有相同类型的n(>=0)个数据元素的有限序列

{a0,a1,a2,....an-1}

ai是表项(数据元素),n是表长度

三、线性表(List)的性质

1、a0为线性表的第一个元素,只有一个后继

2、an-1为线性表的最后一个元素,只有一个前驱

3、除a0和an-1外的其它元素ai,既有前驱又有后继

4、直接支持逐项访问和顺序存取

四、线性表的常用操作

1、将元素插入线性表

2、将元素从线性表中删除

3、获取目标位置处元素的值

4、设置目标位置处元素的值

5、获取线性表的长度

6、清空线性表

五、线性表类的初步构建

#ifndef LIST_H
#define LIST_H

#include "Object.h"

namespace DTLib
{

template <typename T>
class List : public Object
{
public:
    virtual bool insert(int i, const T& e) = 0;
    virtual bool remove(int i) = 0;
    virtual bool set(int i, const T& e) = 0;
    virtual bool get(int i, T& e) const = 0;
    virtual int length() const = 0;
    virtual void clear() = 0;
};

}

#endif // LIST_H

都是纯虚函数,抽象类用来被继承的

六、小结

(1)、线性表是数据元素的有序并且有限的集合

(2)、线性表中的数据元素必须是类型相同的

(3)、线性表可用于描述排队关系的问题

(4)、线性表在程序中表现为一种特殊的数据类型

(5)、线性表在c++中表现为一个抽象类

时间: 2024-11-08 18:48:10

第十四课、线性表的本质和操作-----------------狄泰软件学院的相关文章

第十四课 线性表的本质和操作

线性表(List)的表现形式: 零个或者多个数据元素组成的集合 数据元素在位置上是有序排列的 数据元素的个数是有限的 数据元素的类型必须相同 线性表的抽象定义: 线性表的性质: a0为线性表的第一个元素,只有一个后继 an-1为线性表的最后一个元素,只有一个前驱 除了a0和an-1外,其他的元素ai,既有前驱又有后继 直接支持逐项访问和顺序存取 我们思考下面的问题: 班级同学之间的关系不是一对一的,所以不能用线性表描述 公司中的领导可以领导很多人,所以不能用线性表描述 用物品排队占座是不能用线性

第十六课、顺序存储结构的抽象实现----------狄泰软件学院

一.课程目标 1.完成顺序存储结构的抽象实现,既然是抽象实现,自然就是抽象类,不能生成对象 (1).抽象类模板,存储空间的位置和大小由子类完成  (2).这里只实现顺序存储结构的关键操作(增.删.查等) (3).提供数组操作符,方便快速获取元素(要提供const版本的,方便const对象调用) 二.具体实现 这里需注意几点 (1).这里将capacity()函数设置为纯虚函数,说明在这里还不需要实现它,将其留到子类中在实现. (2).数组操作符的返回值一个是引用一个是值,是因为const对象不能

第5课 - 线性表的本质

第5课 - 线性表的本质 数据结构是为了解决生活中的实际问题而存在的,那生活中与线性表相对应的例子有什么呢? 幼儿园中就有一个例子,在老师安排小朋友活动时,会将小朋友组织成下面的站队形式,这个就是线性表. 1. 线性表的定义 (1)线性表是0个或多个数据元素的集合 (2)线性表中的数据元素之间是有顺序的,这一点非常重要 (3)线性表中的数据元素的个数是有限的,这和实际生活相符(在数学中,线性表的个数可以是无穷的) (4)线性表中的数据元素的类型必须相同 2. 线性表的性质 (1)a0 为线性表的

数据-第5课-线性表的本质

第5课-线性表的本质 线性表的定义 (1) 线性表(List)是零个或多个数据元素的集合. (2) 线性表中的数据元素之间是有顺序的. (3) 线性表中的数据元素个数是有限的. (4) 线性表中的数据元素的类型必须相同. 定义: 线性表是具有相同类型的 n( ≥ 0)个数据元素的有限序列 (a1, a2,...,an)  ai表示项,n表示长度. 线性表的性质 (1) a0为线性表的第一个元素,只有一个后继. (2) an为线性表的最后一个元素,只有一个前驱. (3) 除a0和an外的其它元素a

线性表的本质和操作

线性表(List)的表现形式——零个或多个数据元素组成的集合——数据元素在位置上是有序排列的——数据元素的个数是有限的——数据元素的类型必须相同 线性表的一些常用操作——将元素插入线性表——将元素从线性表中删除——获取目标位置处元素的值——设置目标位置处元素的值——获取线性表的长度——清空线性表 线性表在程序中表现为一种特殊的数据类型 template <typename T> class List : public Object { public: virtual bool insert(i

线性表的本质、操作及顺序存储结构(六)

我们说到线性表,可能好多人还不太理解.那么我们举个例子来说,在幼儿园中,老师们总会让小朋友以同样的派对秩序出行,这个例子的本质就是线性表. 那么线性表(List)的表现形式是怎样的呢?符合以下几个特征:1.零个或多个数据元素组成的集合:2.数据元素在位置上是有序排列的:3.数据元素的个数是有限的:4.数据元素的类型必须是相同的.那么线性表的抽象定义是怎么定义的呢?线性表是具有相同类型的 n( ≥ 0 ) 个数据元素的有限序列.如下 下来我们来看看 List 的本质:1.a0 为线性表的第一个元素

第十三课、类族的结构进化-------------------狄泰软件学院

一.遵循经典设计原则 DTLib中的所有类位于单一继承树 IvalidOperationEXception是新增的异常类,描述某些成员函数在状态不对的时候被抛出 二.改进的关键点 1.EXception类继承自Object类:堆空间中创建异常对象失败时,返回NULL指针,用的是自己的new版本 更改: 2.新增IvalidOperationEXception异常类:成员函数调用时,如果状态不正确则抛出该异常 增加: //非法操作异常 class IvalidOperationEXception:

NeHe OpenGL教程 第十四课:图形字体

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第十四课:图形字体 图形字体: 在一课我们将教你绘制3D的图形字体,它们可像一般的3D模型一样被变换. 这节课继续上一节课课的内容.在第13课我们学习了如何使用位图字体,这节课,我们将学习如何使用轮廓字体. 创建轮廓字体的方法类似于

NeHe OpenGL教程 第四十四课:3D光晕

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十四课:3D光晕 3D 光晕 当镜头对准太阳的时候就会出现这种效果,模拟它非常的简单,一点数学和纹理贴图就够了.好好看看吧. 大家好,欢迎来到新的一课,在这一课中我们将扩展glCamera类,来实现镜头光晕的效果.在日常生活中,