*因借用C++引用语法,主体代码以C++为主,提及C语言
目录
循环链表
循环单链表
表尾结点*r的指针域指向L(r->next==L)
表中没有指针域为NULL的结点(判空条件为头结点是否等于头指针)
插入删除等操作与单链表一致,但注意若在表尾操作,需让单链表保持循环性质。
循环双链表
表尾结点*p的指针域指向L(p->next==L),头结点的prior指针指向表尾结点
循环双链表为空表时,其头结点的prior域和next域都等于L。
静态链表
*指针是结点的相对地址(数组下标)
静态链表以next==-1作为结束标志
静态链表的插入、删除操作与动态链表相同,只需修改指针,不需移动元素
定义静态链表
#define Maxsize 50//静态链表的最大长度
typedef struct //静态链表数据结构类型的定义
{
ElemType data ;//存储数据元素
int next ;//下一个元素的数组下标
} Slinklist[Maxsize] ;//结构类型的别名