这篇文章主要介绍了C++怎么实现静态链表,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联公司长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为铜官企业提供专业的做网站、成都网站建设,铜官网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
C++ 实现静态链表的简单实例
用数组描述的链表,即称为静态链表。
在C语言中,静态链表的表现形式即为结构体数组,结构体变量包括数据域data和游标cur。
这种存储结构,仍需要预先分配一个较大的空间,但在作为线性表的插入和删除操作时不需移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。
下图表示了静态链表的一中存储结构:
图中用彩色途上的是两个头结点,不存放数据,分别用来记录第一个备用节点和第一个数据节点的下标。
下面给出静态链表的C++实现代码:
首先给出头文件:StaticList.h:
#include#include using namespace std; #define MAXSIZE 20 // 静态链表(数组)默认长度 #define ElemType int // 值类型 class StaticList; //节点类 typedef class StaticListNode // 静态链表的节点类型(数组元素类型) { friend class StaticList; private: ElemType data; // 值域 int cur; // 游标 (指示当前节点的下一个元素下标) }StaticListNode; // 静态链表类 class StaticList { public: StaticList() { for(int i = 2; i 下面是测试代码:Main.cpp
#include"StaticList.h" void main() { StaticList SL; StaticList SL1; //测试merge() StaticList SL2; SL1.push_back(1); SL1.push_back(9); SL1.push_back(0); SL1.push_back(6); SL1.push_back(999); SL2.push_back(5); SL2.push_back(8); SL2.push_back(100); ElemType Item = 0; int select = 1; while(select) { cout<<"********************************************"<>select; switch(select) { case 1: cout<<"输入要尾插的数据:(-1结束)>"; while(cin>>Item && -1 != Item) SL.push_back(Item); break; case 2: cout<<"输入要头插的数据:(-1结束)>"; while(cin>>Item && -1 != Item) SL.push_front(Item); break; case 3: SL.show_list(); break; case 4: SL.pop_back(); break; case 5: SL.pop_front(); break; case 6: cout<<"输入要插入的数据:>"; cin>>Item; SL.insert_val(Item); break; case 7: cout<<"链表长度为:"< "; cin>>Item; SL.find(Item); break; case 9: SL.merge(SL1, SL2); break; case 10: cout<<"输入要删除的数据:>"; cin>>Item; SL.delete_val(Item); break; case 11: SL.sort(); break; case 12: SL.reserve(); break; case 13: SL.next(0); break; case 14: SL.prio(0); break; case 15: SL.clear(); break; case 16: SL.~StaticList(); break; default: break; } } } 下面是测试截图:
感谢你能够认真阅读完这篇文章,希望小编分享的“C++怎么实现静态链表”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
名称栏目:C++怎么实现静态链表
转载源于:http://cdweb.net/article/iihsdd.html