本文内容

  • 初始化单链表-带头节点
  • 自动创建单链表-逆序
  • 自动创建单链表-顺序
  • 手动创建单链表-输入
  • 自动创建单链表-数组
  • 创建交叉的单链表
  • 创建带环的单链表
  • 将一般的单链表转换成循环单链表
  • 将循环单链表转换成一般的单链表
  • 销毁单链表
  • 单链表长度
  • 带环的单链表长度
  • 在单链表第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

相关文章: