链表的用法示例.docx
- 文档编号:24654691
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:17
- 大小:15.50KB
链表的用法示例.docx
《链表的用法示例.docx》由会员分享,可在线阅读,更多相关《链表的用法示例.docx(17页珍藏版)》请在冰豆网上搜索。
链表的用法示例
用C++实现链表:
首先功能分析:
构造,清理,增删改查,求大小判断空,取头取尾
#include
usingnamespacestd;
typedefintT;
//链表类
classLinkedList
{
structNode
{
Tdata;
Node*next;
Node(constT&t):
data(t),next(NULL)
{
}
};
public:
//构造析构清空
LinkedList():
head(NULL)
{
}
~LinedList()
{
clear();
}
voidclear()
{
}
/增(insertBackinsertFront)删改查(find)
voidinsertFront(constT&t)
{
}
voidinsertBack(constT&t)
{
}
voiderase(constT&t)
{
}
voidupdate(constT&t,constT&target)
{
}
unsignedintfind(constT&t)
{
unsignedintposition=0;
returnposition;
}
//判断empty求size遍历(travel)
boolempty()
{
}
unsignedintsize()
{
intsize=0;
returnsize;
}
voidtravel()
{
}
//取头取尾
TgetHead()
{
}TgetTail()
{
}
//去指定位置取指针辅助作用
Node*getPointer(intposition)
{
returnNULL;
}
private:
//头指针最重要的部分
Node*head;
};
intmain()
{
}
功能添加:
#include
usingnamespacestd;
typedefintT;
//链表类
classLinkedList
{
structNode
{
Tdata;
Node*next;
//初始化datanext阻止垃圾数据
Node(constT&t=T()):
data(t),next(NULL)
{
}
};
public:
//构造析构清空
LinkedList():
head(NULL)
{
}
~LinkedList()
{
clear();
}
voidclear()
{
Node*p=head;
while(p!
=NULL)
{
Node*q=p->next;
deletep;//释放p所在空间
p=q;
}
}
//判断empty求size遍历(travel)
boolempty()
{
//判断头指针是否为空为空表示链表不存在
returnhead==NULL?
true:
false;
}
unsignedintsize()
{
unsignedintsize=0;
Node*p=head;
while(p!
=NULL)
{
size++;
pp=p->next;
}
returnsize;
}
voidtravel()
{
//利用while循环一次次的输出来,直到指针为NULL结束
Node*p=head;
while(p!
=NULL)
{
cout< pp=p->next; } } //增(insertAfterinsertFront)删改查(find) voidinsertFront(constT&t) { Node*p=newNode(t); p->next=head;//讲头指针所指向的地址给p的next head=p;//让*p作为头 } voidinsertAfter(constT&t) { Node*p=newNode(t); Node*tail=getPointer(size()-1); tail->next=p; } voiderase(constT&t) { unsignedintposition=find(t); Node*cur=getPointer(position); if(position! =0) { Node*pre=getPointer(find(t)-1); pre->next=cur->next; }else{ head=cur->next; } deletecur; } voidupdate(constT&t,constT&target) { Node*p=getPointer(find(target)); p->data=t; } unsignedintfind(constT&t) { unsignedintposition=0; Node*p=head; while(p! =NULL) { if(p->data==t) { returnposition; } pp=p->next; position++; } returnposition; } //取头取尾 TgetHead() { returnhead->data; } TgetTail() { Node*p=getPointer(this->size()-1); returnp->data; } //去指定位置取指针辅助作用 Node*getPointer(intposition) Node*p=head; for(inti=0;i { pp=p->next; } returnp; } private: //头指针最重要的部分 Node*head; }; intmain() { }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用法 示例
![提示](https://static.bdocx.com/images/bang_tan.gif)