本文内容
- 初始化单链表-带头节点
- 自动创建单链表-逆序
- 自动创建单链表-顺序
- 手动创建单链表-输入
- 自动创建单链表-数组
- 创建交叉的单链表
- 创建带环的单链表
- 将一般的单链表转换成循环单链表
- 将循环单链表转换成一般的单链表
- 销毁单链表
- 单链表长度
- 带环的单链表长度
- 在单链表第i个位置插入元素e
- 删除单链表第i个元素
- 合并单链表
- 单链表置逆
- 单链表排序
- 单链表是否包含环
- 单链表是否为循环单链表
- 获得单链表第i个节点元素
- 获得元素为e的节点位置
- 获得单链表的中间节点元素
- 查找单链表元素为e的指针
- 查找单链表倒数第K个节点的元素
- 查找交叉的单链表的交叉节点
- 查找带环的单链表的环入口节点
- 输出单链表,不输出头节点
- 输出单链表,输出头节点
- 输出带环的单链表
linklist.h 声明文件
int ElementType;
#ifndef LIST_H_INCLUDED
#define LIST_H_INCLUDED
struct LNode;
typedef struct LNode *linkList;
typedef linkList LinkList;
typedef linkList LinkPos;
/* 初始化-创建头节点 */
LinkList InitList_L();
/* 自动创建-逆序 */
LinkList CreateAutoList_L01( int length );
/* 自动创建-顺序 */
LinkList CreateAutoList_L02( int length );
/* 手动创建-输入 */
LinkList CreateHandList_L( int length );
/* 自动创建-数组 */
LinkList CreateHandArrList_L( int a[], int length );
/* 创建交叉单链表 */
void CreateIntersectantList_L( LinkList La, LinkList Lb, int index);
/* 创建带环的单链表 */
LinkList CreateLoopList_L( LinkList La, LinkList Lb, int index);
/* 将一般的单链表转换成循环单链表 */
void ConvertCircularList_L( LinkList L );
/* 将循环单链表转换成一般的单链表 */
void ConvertGeneralList_L( LinkList L );
/* 销毁单链表 */
void DestroyList_L( LinkList L );
/* 单链表长度 */
int LengthList_L( LinkList L );
/* 带环的单链表长度 */
int LengthLoopList_L( LinkList L );
/* 在单链表第i个位置插入元素e */
void InsertList_L( LinkList L, int index, ElementType e );
/* 删除单链表第i个元素 */
void DeleteList_L( LinkList L, int index, ElementType *e );
/* 合并单链表 */
void MergeList_L( LinkList La, LinkList Lb );
/* 单链表置逆 */
void ReverseList_L01( LinkList L );
void ReverseList_L02( LinkPos pHead, LinkPos pTail);
/* 单链表排序 */
void SortList_L( LinkList L );
/* 单链表是否包含环 */
int IsLoopList_L( LinkList L );
/* 单链表是否为循环单链表 */
int IsCircularList_L( LinkList L );
/* 获得单链表第i个节点元素 */
ElementType GetList_L( LinkList L, int i );
/* 获得元素为e的节点位置 */
int LocateList_L( LinkList L, ElementType e );
/* 获得单链表中间节点元素 */
ElementType FindMiddleList_L( LinkList L );
/* 查找单链表元素为e的指针 */
LinkPos FindList_L( LinkList L, ElementType e );
/* 查找单链表倒数第K个节点的元素 */
ElementType FindKthList_L( LinkList L, int KthIndex );
/* 查找交叉链表交叉节点 */
ElementType FindIntersectantList_L( LinkList La, LinkList Lb, int testIndex );
/* 查找环入口节点 */
ElementType FindLoopList_L( LinkList L );
/* 输出单链表,不输出头节点 */
void PrintList_L( LinkList L);
/* 输出单链表,输出头节点 */
void PrintAllList_L( LinkList L );
/* 输出带环的单链表 */
void PrintLoopList_L( LinkList L );
#endif