欢迎来到天天文库
浏览记录
ID:35506714
大小:56.04 KB
页数:10页
时间:2019-03-25
《数据结构示例(一)——顺序表和链表》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1、顺序表templateclassSeqListprivate:T*data;intsize;intMaxSize;public:SeqList(intsz=100);~SeqList(){delete[]data;}intLength()const{returnsize;}boolIsEmptyOconst{returnsize==0;}voidInsert(constT&x,intk);voidDelete(intk);TGetData(intk)const;intFind(constT&x)const;voidOutput(o
2、stream&out)const;};templateSeqList::SeqList(intsz){MaxSize=sz;data=newT[MaxSize];size=0;}templatevoidSeqList::Insert(constT&x,intk){if(ksize+l){cerrvv“越界出错”;exit(l);}if(size==MaxSize){cerr«M顺序表已满exit(l);}for(inti=size-l;i>=k-1;i—)data[i+l]=data[il;da
3、ta[k-l]=x;size++;}{cerrvv”顺序表空exit(l);}if(ksize){cerr«u越界出错”;exit(l);}for(inti=k;iTSeqList::GetData(intk)const{if(ksize){cerr«n越界出错H;exit(l);}returndata[k-l];}templateintSeqList::Find(constT&x)const{in
4、ti=0;while(iintSeqList::Find(constT&x)const{for(inti=0;ivsize;i++)if(data[i]==x)returni+1;return0;)//*/templatevoidSeqList::Output(ostream&out)const{for(inti=0;i5、teostream&openitorvv(ostnjam&out,constSeqList&x){x.Output(out);returnout;2、链表templatestructNode{Tdata;Node*next;};templateclassLinkList{private:Node*head;public:LinkList();~LinkList();intLength()const;boolIsEmptyOconst;voidInsert(constT&x,intk);6、voidDelete(intk);TGetData(intk)const;Node*Find(constT&x)const;voidClearList();voidOutput(ostream&out)const;};templateLinkList::LinkList(){head=newNode:head->next=NULL;}Node*p;while(head){p=head;head=head->next;deletep;templateintLinkList::Length()7、const{Node*p=head->next;intk=0;while(p){k++;p=p->next;)returnk;templateboolLinkList::IsEmpty()const{returnhead->next==NULL;}templatevoidLinkList::Insert(constT&xjntk){if(k*p=head;inti=0;while(p&&inext;i++;}if(!p)8、{cerr«H错误!”;exit(l);}Node*s=newNodevT>;s->data=x;s-
5、teostream&openitorvv(ostnjam&out,constSeqList&x){x.Output(out);returnout;2、链表templatestructNode{Tdata;Node*next;};templateclassLinkList{private:Node*head;public:LinkList();~LinkList();intLength()const;boolIsEmptyOconst;voidInsert(constT&x,intk);
6、voidDelete(intk);TGetData(intk)const;Node*Find(constT&x)const;voidClearList();voidOutput(ostream&out)const;};templateLinkList::LinkList(){head=newNode:head->next=NULL;}Node*p;while(head){p=head;head=head->next;deletep;templateintLinkList::Length()
7、const{Node*p=head->next;intk=0;while(p){k++;p=p->next;)returnk;templateboolLinkList::IsEmpty()const{returnhead->next==NULL;}templatevoidLinkList::Insert(constT&xjntk){if(k*p=head;inti=0;while(p&&inext;i++;}if(!p)
8、{cerr«H错误!”;exit(l);}Node*s=newNodevT>;s->data=x;s-
此文档下载收益归作者所有