单链表
typedef struct LNode{
ElemType data ;
struct LNode * next ;
}LNode ,*LinkList ;
头插法
尾插法
查找(序号)
查找(值)
插入
删除
双链表
插入
删除
循环单链表
循环单链表和单链表的区别在于,表中最后一个节点的指针不是 NULL,而改为指向头结点,从而整个链表形成一个环
从任何一个结点出发都能访问到链表的每一个元素
1. 判空条件不是头节点的后继指针是否为空,而是它是否等于头指针
2. 有事对单链表常熟的操作是在表头和标为进行的,此时可对循环单链表不设头指针而仅设尾指针从而使得操作效率更高
循环双链表
1. 在循环双链表 L 中,尾结点的后继指针指向表头结点,头节点的前驱指针指向表尾结点
2. 当循环双链表为空表时,其头节点的 point 域和 next 域都等于 L
静态链表
借助数组来描述线性表的链式存储结构,结点也有数据域 data 和指针域 next,与前面所讲的链表中的指针不同的是,这里的指针是结点的相对地址(数组下标),又称游标。
#define MaxSize 50
typedef int ElenType
typedef struct{
ElemType data;
int next ;
}SLinkList[MaxSize];