- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法
数据结构的基本概念及术语 算法 线性表 栈和队列 二叉树 查找与排序 第2小节 线性表的顺序结构及运算实现 【例】 利用线性表的基本运算,编写在线性表A中删除线性表B中出现的元素的算法。 【解】 本题的算法思路是:依次检查线性表B中的每个元素,看它是否在线性表A中。若在线性表A中,则将其从A中删除。本题的算法如下: 算法如下: void SqList::part() { int i,j; ElemType x,y; x=elem[0]; //将基准元素a1置入x中 for(i=1;ilength;i++) if(elem[i]x) //当前元素小于a1 { y=elem[i]; for(j=i-1;j=0;j--) //移动 elem[j+1]=elem[j]; elem[0]=y; } } 第3小节 线性表的链式存储和运算实现 1 链表的存储结构 C++语言采用结构数据类型描述结点如下: typedef struct node{ ElemType data; //结点值 struct node *next; //存储下一个结点的地址 } NodeType ; 2 单向链表 图 单链表的倒置 2).求线性表长度GetLength()函数、查找运算locate(x)函数、链表元素输出运算PrintOut()函数中,循环遍历是否进行的条件由p!=NULL改为p!=L; 其余函数运算没有变化,请自行写出相关函数的定义。 在循环链表中,除了有头指针head外,有时还可加上一个尾指针tail。尾指针tail指向最后一结点,沿最后一个结点的指针又可立即找到链表的第一个结点。在实际应用中,使用尾指针来代替头指针进行某些操作往往会更简单。 4 双向链表 图 双向链表结点结构图 结点的插入过程如下图所双向链表示: 注意:在图中,关键语句指针操作序列既不是唯一也不是任意的。操作①必须在操作③之前完成,否则*p的前驱结点就丢掉了。 结点的删除过程如下图所双向链表示: 5 循环双链表 与循环单链表一样,也可以使用循环双链表。循环单链表和循环双链表可通过尾结点找到头结点,也常作为编辑器的数据结构,尤其是循环双链表。 链式存储结构小结: 克服了顺序存储结构的缺点,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,进行数据插入或删除时不需要移动数据元素。 但是链式存储结构也有不足之处: ①每个结点中的指针域需额外占用存储空间,当每个结点的数据域所占字节不多时,指针域所占存储空间的比重就显得很大; ②链式存储结构是一种非随机存储结构。对任一结点的操作都要从指针链查找到该结点,这增加了算法的复杂度。 特性:后进先出(Last In First Out),简称为LIFO线性表。 举例1:家里吃饭的碗,通常在洗干净后一个一个地落在一起存放,在使用时,若一个一个地拿,一定最先拿走最上面的那只碗,而最后拿出最下面的那只碗。 举例2:在建筑工地上,使用的砖块从底往上一层一层地码放,在使用时,将从最上面一层一层地拿取。 栈结构的基本操作: (1)初始化栈 (2)入栈 (3)出栈 (4)获取栈顶元素内容 (5)判断栈是否为空 3. 顺序栈类定义及运算实现 typedef int ElemType; const int MAXSIZE=100; class Sqstack { private: ElemType elem[MAXSIZE]; int top; public: public: Sqstack () {top=-1;} ~Sqstack(){}; void SetEmpty(){ top=-1;} int IsEmpty(); void Push( ElemType e); ElemType Pop(); ElemType GetTop(); void PrintOut(); }; 4. 栈的链式存储 5 栈的应用举例 【举例1】将从键盘输入的字符序列逆置输出 比如:从键盘上输入:
您可能关注的文档
最近下载
- 求阴影面积的常用方法.pdf VIP
- 2024年广东省深圳市盐田区梅沙街道招聘社区工作者真题含答案详解.docx VIP
- 英、美、中三国会计师事务所组织形式演变研究.pdf VIP
- 工会经费管理与内部审计问题分析及改进建议.docx VIP
- 电气管理课件.pptx VIP
- 2025中国现代文学史自考真题及答案 .pdf VIP
- 2025努力锻造忠诚干净担当的新时代政法铁军党课PPT课件.pptx VIP
- 富士达电梯MLVF-T无机房(CP40)电气原理图.pdf VIP
- 国家建筑标准设计图集-12S101 矩形给水箱.pdf VIP
- Pico Pico Neo 3 VR头盔 Pico Neo 3 0207 用户手册.pdf
文档评论(0)