单链表的基本操作
一、 单链表的初始化(带头结点)
算法步骤:
- 生成新结点作头结点,用头指针L指向头结点。
- 将头结点的指针域置空。
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}LNode,*LinkList;
Status InitList_L(LinkList &L){
L = new LNode; //或L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
return OK;
}
二、 判断链表是否为空
算法步骤:
- 判断头结点指针域是否为空
int LinkEmpty(LinkList L){ //若为空表,返回1,否则返回0
if(L->next)
return 0;
else
return 1;
}
三、 单链表的销毁(链表销毁后不存在)
算法步骤:
- 从头指针开始,依次释放所有结点
Status DestroyList_L(LinkList &L){
Lnode *p; //或LinkList p;
while(L){
p = L;
L = L->next;
delete p;
}
四、 清空链表--链表仍然存在,但链表中没有元素
算法步骤:
- 依次释放所有结点,并将头结点指针域设置为空
Status ClearList(LinkList &L){
Lnode *p,*q; //或LinkList p,q;
p=L->next;
while(p){
q=p->next;
delete p;
p=q;
}
L->next==NULL;
return OK;
}
五、 求单链表的表长
算法思路:
- 从首元结点开始,依次计数所有结点
int ListLength_L(LinkList &L){
LinkList p; //Lnode *p;
p=L->next; //p指向第一个结点
i=0;
while(P){
i++; //遍历单链表,统计结点数
p=p->next;
}
return i;
}
原文地址:https://blog.csdn.net/2301_80702982/article/details/142693974
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!