欢迎来到天天文库
浏览记录
ID:48662064
大小:54.00 KB
页数:5页
时间:2020-02-27
《C++实现单链表(模版类).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.C++模版类实现单链表先上代码/********************************线性表抽象类的定义***************************/templateclasslist{public:virtualvoidempty()=0;//清空线性表virtualintgetLength()=0;//求表的长度virtualvoidinsert(inti,constdataType&x)=0;//在表中第i个位置插入值为x的元素virtualvo
2、idremove(inti)=0;//删除表中第i个位置的元素virtualintsearch(constdataType&x)=0;//查找并返回值为x的元素在表中的位置virtualdataTypevisit(inti)=0;//访问表中第i个元素的值virtualvoidtraverse()=0;//遍历线性表};/*******************************单链表类的定义********************************/#include"list.h"templ
3、ateclasslinkList:publiclist{//公有继承自list类public:linkList();//构造函数,创建对象时生成空链表voidempty();//清空链表intgetLength();//求表的长度voidinsert(inti,constdataType&x);//在表中第i个位置插入值为x的元素voidremove(inti);//删除表中第i个位置的元素intsearch(constdataType&x);//查找并
4、返回值为x的元素在表中的位置dataTypevisit(inti);//访问表中第i个元素的值voidtraverse();//将表中的元素逐一输出~linkList();//析构函数private://定义节点structnode{dataTypedata;node*next;node():next(NULL){};node(dataTyped):data(d),next(NULL){};精选word范本!.};node*head;//链表头node*tail;//链表尾intcurrentLengt
5、h;//链表长度};/*********************************单链表类的实现******************************/#includeusingnamespacestd;templatelinkList::linkList(){head=newnode;tail=newnode;head->next=tail;currentLength=0;cout<<"Createlistsucce
6、ss!";}templatevoidlinkList::empty(){node*nowPos=head->next;while(nowPos!=tail){node*tmp=nowPos;nowPos=nowPos->next;deletetmp;}head->next=tail;currentLength=0;cout<<"Emptylistsuccess!";}templateintlinkList7、aType>::getLength(){returncurrentLength;}templatevoidlinkList::insert(inti,constdataType&x){精选word范本!.if(i<08、9、i>currentLength){cout<<"Theindexisoutofrange!";return;}node*add=newnode(x);if(i==0){add->next=head->next;head->next10、=add;}else{//找到第i-1个节点node*nowPos=head->next;while(--i){nowPos=nowPos->next;}add->next=nowPos->next;nowPos->next=add;}++currentLength;cout<<"Insertdatasuccess!";}templatevoidlinkList::remove(in
7、aType>::getLength(){returncurrentLength;}templatevoidlinkList::insert(inti,constdataType&x){精选word范本!.if(i<0
8、
9、i>currentLength){cout<<"Theindexisoutofrange!";return;}node*add=newnode(x);if(i==0){add->next=head->next;head->next
10、=add;}else{//找到第i-1个节点node*nowPos=head->next;while(--i){nowPos=nowPos->next;}add->next=nowPos->next;nowPos->next=add;}++currentLength;cout<<"Insertdatasuccess!";}templatevoidlinkList::remove(in
此文档下载收益归作者所有