单链表基本操作的实现
时间: 2023-10-17 09:06:47 浏览: 57
单链表的基本操作包括单链表的初始化、判断空链表、销毁、清空以及求表长等操作。在单链表的初始化中,我们生成一个只有头指针的单链表,并将其指向的头结点的指针域置空。判断单链表是否为空表时,我们可以通过判断头结点的指针域是否为空来确定。
以下是单链表基本操作的实现代码:
```c
/* 初始化链式线性表 */
Status IniList(LinkList *L) {
*L = (LinkList)malloc(sizeof(Node)); /* 产生头结点,并使L指向此头结点 */
(*L)->next = NULL; /* 指针域为空 */
return OK;
}
/* 判断单链表是否为空表 */
Status IsEmpty(LinkList L) {
return L->next == NULL ? OK : ERROR;
}
/* 销毁单链表 */
Status DestroyList(LinkList *L) {
LinkList p, q;
p = *L;
while (p) {
q = p->next;
free(p);
p = q;
}
*L = NULL;
return OK;
}
/* 清空单链表 */
Status ClearList(LinkList L) {
LinkList p, q;
p = L->next;
while (p) {
q = p->next;
free(p);
p = q;
}
L->next = NULL;
return OK;
}
/* 求单链表的长度 */
int Length(LinkList L) {
int len = 0;
LinkList p = L->next;
while (p) {
len++;
p = p->next;
}
return len;
}
```