C++数据结构_链表

C++数据结构_链表

ID:37910759

大小:114.50 KB

页数:13页

时间:2019-06-02

C++数据结构_链表_第1页
C++数据结构_链表_第2页
C++数据结构_链表_第3页
C++数据结构_链表_第4页
C++数据结构_链表_第5页
资源描述:

《C++数据结构_链表》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1,这是使用C++编写的单链表,链表栈,链表队列,采用了模板技术。2,由于这只是本人验证学习而编写的,所以漏洞是难免的。3,这些程序都在VC6.0通过编译(控制台工程),并进行了基本调试,可以正常运行。4,这些内容只做为参考,对基可靠性,复杂度没有测试过。5,当然,由于本人只是学生,所以其中的算法并不可靠,优秀,还忘大家指导。链表.h源文件#ifndeflist_h#definelist_h#include#includeusingnamespacestd;templateclasssinglelist{public:single

2、list();//初始化链表~singlelist(){deletephead;//释放链表内存}boolInsert_tail(Typem);//向尾部增加数据mboolInsert_app(intn,Typem);//在指定位置n插入数据mboolInsert_all(Typen,Typem);//在指定数据n的位置插入数据m,对所有n数据位置插入voidoutput_data();//输出表中的数据intoutput_long();//输出表中元素个数,不包含头结点boolDelete_app(intn,Type&m);//删除n指定位置的元素,并赋给mboolDelete_all(

3、Typem);//删除表中所有数据为m的元素Typeselect_app(intn);//查找n指定数据的数据intselect_all(Typem);//查找数据m在表中的总个数boolmodify_app(intn,Typem);//将n指定位置的数据修改成mboolmodify_all(Typen,Typem);//将表中所有数据为n的数据修改为mboolreplication_out(singlelist&table);//将表中的数据复制给table表boolreplication_into(singlelist&table);//将table中的数据复制到表中voidsort_

4、l();//对表中数据进行升序voidsort_drop();//对表中数据进行降序voidfilter();//过滤表中重复的数据voidempty();//清空表中的数据private:boolPosition(intn);//将p指向n指定的位置structNode//结点数据类型{Typedata;//数据域structNode*pt;//指向域};structNode*phead;//头指针structNode*ptail;//尾指针structNode*p;//插入删除位置指针intlon;//记录链表长度};templatesinglelist

5、>::singlelist()//初始化链表{phead=newstructNode;//初始化链表if(phead){//如果内存分配成功就初始数据成员phead->pt=NULL;ptail=phead;//初始化尾结点p=NULL;//初始插入删除位置指针lon=0;//初始长度}else{//内存分配失败,输出提示cout<<"单链表初始内存分配失败!"<boolsinglelist::Insert_tail(Typem)//向尾部增加数据m

6、{structNode*p=newstructNode;//分配结点if(!p)//分配失败就返回假returnfalse;p->data=m;//分配成功就将数据m保存至结点p->pt=NULL;//将结点指向为空ptail->pt=p;//将结点挂到尾结点上ptail=p;//将尾指针重新指向尾结点lon++;//增加表长度returntrue;//增加结点完成就返回真}templateboolsinglelist::Position(intn)//返回n指定的位置{intk=1;p=phead;//每次将p重新指向头指针while(p->pt!=NU

7、LL&&kpt;k++;}if(p->pt==NULL

8、

9、k>n

10、

11、n<1)//如果用户指定位置超出范围就返回假returnfalse;elsereturntrue;}templateboolsinglelist::Insert_app(intn,Typem)//在指定位置n插入数据m{if(!Position(n))//判断位置指针是否合法,不合法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。