/*=============================== * 线性表的链式存储结构(链表) * * 包含算法: 2.8、2.9、2.10、2.11 ================================*/ #ifndef LINKEDLIST_H #define LINKEDLIST_H #include #include //提供malloc、realloc、free、exit原型 #include "Status.h" //**▲01 绪论**// /* 单链表元素类型定义 */ typedef int ElemType; /* * 单链表结构 * * 注:这里的单链表存在头结点 */ typedef struct LNode { ElemType data; // 数据结点 struct LNode* next; // 指向下一个结点的指针 } LNode; // 指向单链表结点的指针 typedef LNode* LinkList; /* * 初始化 * * 初始化成功则返回OK,否则返回ERROR。 */ Status InitList(LinkList* L); /* * 计数 * * 返回链表包含的有效元素的数量。 */ int ListLength(LinkList L); /* * ████████ 算法2.9 ████████ * * 插入 * * 向链表第i个位置上插入e,插入成功则返回OK,否则返回ERROR。 * *【备注】 * 教材中i的含义是元素位置,从1开始计数 */ Status ListInsert(LinkList L, int i, ElemType e); /* * 遍历 * * 用visit函数访问链表L */ void ListTraverse(LinkList L, void(Visit)(ElemType)); #endif