/*=============================== * 线性表的链式存储结构(链表) * * 包含算法: 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); /* * 查找 * * 返回链表中首个与e满足Compare关系的元素位序。 * 如果不存在这样的元素,则返回0。 * *【备注】 * 元素e是Compare函数第二个形参 */ int LocateElem(LinkList L, ElemType e, Status(Compare)(ElemType, ElemType)); /* * ████████ 算法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