- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
//双向循环链表结点类定义 template class T class DLink { public: T data; DLingk * next; DLingk * prev; DLink( const T info, DLinkT * preValue = NULL, DLinkT * nextValue = NULL ) { data = info; next = nextValue; prev = preValue; } DLink( DLinkT * preValue = NULL, DLinkT * nextValue = NULL ) { next = nextValue; prev = preValue; } }; //双向循环链表类定义 template class T class lnkList : public ListT { private: LinkT * head; LinkT * setPos(const int p); public: linList(int s) ; ~linList( ); bool isEmpty( ); void clear( ) ; int length( ); bool append(const T value); bool insert(const int p, const T value); bool remove (const int p); bool getValue(const int p, T value); bool getPos(int p, const T value); }; 双向循环链表的搜索 搜索成功 搜索不成功 双向循环链表 小技巧: 双向(循环)链表可以看作两个单链表(所有的next指针构成一个单链表,所有的prev指针构成第二个单链表), 在对双向(循环)链表做插入和删除时,只需将待插入或待删除结点针对两个单链表将做两次插入和删除即可。 大作业 设计实现 多项式(Polynomial)的抽象数据类型 要求: 存储:尝试多种方式(三种) 操作:多项式加法和乘法 完 静态链表 静态链表结构 使用连续存储空间,每一个元素包括两个域(data和link),其中link域为整型存储相对地址(下标)表示元素间关系。 使用空间: 连续存储空间 关系表示: 下标 元素访问: 通过下标读写 静态链表 空间组织 由于连续空间中存在两种元素空间: 空闲(可用)空间 和 占用空间 所以建立两个链表:一个表示数据链,一个表示空闲链。 静态链表 静态链表 静态链表 静态链表 静态链表插入 从avil指向可用链分配空闲结点: j = avil; avil = A[avil].link; 给j指向的结点数据域赋值: A[j].data = x; 将j指向结点插入数据链的指定位置(i之后): A[j].link = A[i].link; A[i].link = j 静态链表删除 将数据链中i之后的结点从链中摘下: j = A[i].link; A[i].link = A[j].link; 给j指向的结点插入可用链(释放结点): A[j].link = avil; avil = j; 静态链表作业 作业实现静态链表类 注意: 数据域的定义——连续空间; 函数成员主要实现——查找、插入和删除,插入删除时注意空间状态(空和满)。 //静态链表结点类定义 template class T class Slink { public: T data; int link; SLink(const int linkValue = -1) { link = linkValue; } }; //静态链表类定义 template class T class SlnkList : public ListT { private: SLinkT * A; int head, avil; int setPos(const int p); public: SlinList(int size) ; ~SlinList( ); void clear( ) ; int length( ); bool insert(const int p, const T value); bool remove (const int p); bool getValue(const int p, T value); bool getPos(int p, const T value); }; //静态链表的构造和析构 template class T Sln
您可能关注的文档
最近下载
- 驼乳粉的技术要求.pdf VIP
- 哈工大_理论力学_I(第6版)习题详解.pdf
- 2025年新高考数学一轮复习:函数的图象(九大题型)(讲义)(学生版+解析).pdf VIP
- 陶喆出轨道歉会PPT(源文件锐普独家首发)0708.pptx VIP
- 2025年新高考数学一轮复习:圆的方程(八大题型)(讲义)(学生版+解析).pdf VIP
- 2025年新高考数学一轮复习:数列求和(九大题型)(练习)(学生版+解析).pdf VIP
- 发酵驼乳粉的技术要求.pdf VIP
- 罗斯蒙特3051C压力变送器校准调试方法.doc VIP
- 视频监控系统工程质量管理体系和保证措施.docx VIP
- 660MW超超临界火电机组深度调峰经济性评估与对策.docx VIP
文档评论(0)