单链表
1.顺序表与单链表区别:
不同于顺序表的逻辑结构与存储结构对应相邻,单链表采用的是顺序存取的方式,按照节点逐一存储。其逻辑上相邻,存储上并不一定相邻,而是有节点中的指针域指向下一节点。
2.单链表操作:
操作包括:初始化、判断是否为空、销毁、清空、求表长、取值、查找、插入、删除、头(尾)插法创建表
c语言表示:
#include<iostream>
using namespace std;
//单链表的存储结构
typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *LinkList;
// 单链表的初始化
int InitList(LinkList &L)
{
//构造一个空的单链表
L = new LNode;
L->next = NULL;
return 1;
}
//判断链表是否为空
int ListEmpty(LinkList L)
{
if (L->next)
{
return 0; //非空
}
else
{
return 1; //链表为空
}
}
//获取链表长度
int ListLength(LinkList L)
{
int length = 0;
LNode *p;
p = L->next;
while (p)
{
length++;
p = p->next;
}
return length;
}
// 遍历单链表
void TraveList(LinkList L)
{
LNode *p;
p = L->next;
printf("链表结果如下:\n");
while (p)
{
printf("%d ", p->data)