数据结构第02章-线性表课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构第02章-线性表课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 02 线性 课件
- 资源描述:
-
1、数据结构(数据结构(C+版)版)n 第1章 绪论 第2章 线性表 第3章 排序 第4章 串 第5章 栈与队列 第6章 数组和广义表 第7章 树和二叉树 第8章 查找 第9章 图 第10章 综合应用设计第2章 线性表 2.1 线性表的概念 2.2 顺序表类 2.3 单链表类 2.4 双向链表类数据结构(C+版)叶核亚2.1 线性表的概念 2.1.1 线性表的抽象数据类型 2.1.2 线性表的存储结构数据结构(C+版)叶核亚2.1.1 线性表的抽象数据类型1.线性表的数据元素线性表是由n(n0)个相同类型的数据元素a1,a2,an组成的有限序列,记作:LinearList=a1,a2,an其中,n
2、表示线性表的元素个数,称为线性表的长度。若n=0,则称为空表。若n0,对于线性表中第i个数据元素ai,有且仅有一个直接前驱数据元素ai-1和一个直接后继数据元素ai+1,而a1没有前驱数据元素,an没有后继数据元素。数据结构(C+版)叶核亚线性表的基本操作求长度:求线性表的数据元素个数。访问:对线性表中指定位置的数据元素进行存取、替换等操作。插入:在线性表指定位置上,插入一个新的数据元素,插入后仍为一个线性表。删除:删除线性表指定位置的数据元素,同时保证更改后的线性表仍然具有线性表的连续性。复制:重新复制一个线性表。合并:将两个或两个以上的线性表合并起来,形成一个新的线性表。查找:在线性表中查
3、找满足某种条件的数据元素。排序:对线性表中的数据元素按关键字值,以递增或递减的次序进行排列。遍历:按次序访问线性表中的所有数据元素,并且每个数据元素恰好访问一次。数据结构(C+版)叶核亚2.1.2 线性表的存储结构线性表的顺序存储结构线性表的链式存储结构数据结构(C+版)叶核亚1.线性表的顺序存储结构线性表的顺序存储结构是用一组连续的存储单元顺序存放线性表的数据元素,数据元素在内存的物理存储次序与它们在线性表中的逻辑次序是一致的,即数据元素ai与其前驱数据元素ai-1及后继数据元素ai+1的位置相邻。数据结构(C+版)叶核亚图2-1 线性表的顺序存储结构 数据结构(C+版)叶核亚2.线性表的链
4、式存储结构线性表的链式存储结构是把线性表的数据元素存放在结点中。结点(node)由数据元素域和一个或若干个指针域组成。指针是用来指向其他结点地址的,这样,线性表数据元素之间的逻辑次序就由结点间的指针来实现。用链式存储结构实现的线性表称作链表链表。数据结构(C+版)叶核亚2.2 顺序表类2.2.1 顺序表类声明2.2.2 顺序表类操作2.2.3 顺序表类操作的效率分析数据结构(C+版)叶核亚2.2.1 顺序表类声明class SeqList /顺序表类 private:int*table;/指向数组的指针 int size;/顺序表的数组容量 int len;/顺序表的实际长度 public:S
5、eqList(int n=0);/构造函数 SeqList(void);/析构函数 bool isEmpty()const;/判断顺序表是否为空 bool isFull()const;/判断顺序表是否已满 int length()const;/返回顺序表的实际长度 int get(int i)const;/返回第i个数据元素值 bool set(int i,int k);/设置第i个数据元素值为k bool insert(int i,int k);/插入k值作为第i个数据元素 bool insert(int k);/将k值添加到顺序表最后,函数重载 int search(int k);/查找,
6、返回k值首次出现的位置 bool remove(int k);/删除k值首次出现的数据元素;数据结构(C+版)叶核亚2.2.2 顺序表类操作1.顺序表的初始化使用构造方法创建顺序表对象,为顺序表分配存储空间,设置顺序表为空状态。算法如下:SeqList:SeqList(int n)/构造函数,初始化顺序表 table=new intn;/为顺序表分配n个存储单元 size=n;len=0;/此时顺序表实际长度为02.撤销顺序表对象当一个顺序表对象被撤销时,使用析构方法释放该对象占用的内存空间。算法如下:SeqList:SeqList(void)/析构函数,撤销顺序表对象 delete tabl
7、e;数据结构(C+版)叶核亚图2-2 顺序表中插入数据元素 数据结构(C+版)叶核亚图2-3 删除顺序表中的数据元素 数据结构(C+版)叶核亚2.2.3 顺序表类操作的效率分析在顺序表中插入一个数据元素的平均移动次数为时间复杂度为O(n)。niniinnnninnpin0022)1(11)(11)(数据结构(C+版)叶核亚例2-1 以顺序表求解约瑟夫环问题约瑟夫环(Josephus)问题:古代某法官要判决n个犯人的死刑,他有一条荒唐的法律,将犯人站成一个圆圈,从第s个人开始数起,每数到第d个犯人,就拉出来处决,然后再数d个,数到的人再处决直到剩下的最后一个可赦免。数据结构(C+版)叶核亚图2-
展开阅读全文