单链表及其应用
为了便于实现插入、删除等操作,在单链表的第一个节点之前增加一个节点,称为头节点。头节点的数据域可以存放如单链表的长度等信息,头节点的指针域存放第一个节点的地址信息,使其指向第一个节点。(若带头节点的单链表为空链表,则头节点的指针域为空)
储存结构
typedef struct node
{
int data;
node* next;
}listNode, *linkList;
其中,listNode是单链表的节点类型,linkList是指向单链表节点的指针类型。
基本运算
初始化单链表
void initList(linkList *head)
{
if (((*head) = new listNode) == NULL) {
cout << "申请空间失败!";
exit(-1);
}
(*head)->next = NULL;
}
### 判断单链表是否为空
若单链表为空,返回1;否则,返回0。
```cpp
bool listEmpty(linkList head)
{
if (head->next == NULL) {
return true;
} else {
return false;
}
}
按序号查找操作
若查找成功,则返回该节点的指针;否则,返回NULL。
linkList get(linkList head, int i)
{
if ((listEmpty