链表的c语言头文件,链表头文件C语言

因为眼前有个例程要使用链表,索性写了一个链表,纯洁的链表其实写得很少.写了一次,感觉又是受益匪浅.

/* linked_list.h -- 链表头文件 */ /* 数据类型定义 */ typedef int Linked_List_Item ; typedef struct linked_list_node { Linked_List_Item v ; Linked_List_Item w ; struct linked_list_node * next ; } Linked_List_Node ; typedef Linked_List_Node * List ; /* 接口函数声明 */ /* 操作: 初始化一个链表 */ /* 操作前: pli 指向一个链表 */ /* 操作后: 将该链表初始化为空, 返回 1 */ /* 时间复杂度: O (1) */ int Initialize_L (List * const pli) ; /* 操作: 确定链表是否为空 */ /* 操作前: pli 指向一个已初始化的链表 */ /* 操作后: 如果链表为空, 返回 1; 否则返回 0 */ /* 时间复杂度: O (1) */ int IsEmpty_L (const List * const pli) ; /* 操作: 向链表中添加一个元素 */ /* 操作前: pli 指向一个已初始化的链表, li1, li2 是待添加元素的数据 */ /* 操作后: 如果内存分配成功, 向链表头部添加数据域为 li1, li2 的元素, 返回 1; 否则返回 0 */ /* 时间复杂度: O (1) */ int Insert_L (List * const pli, const Linked_List_Item li1, const Linked_List_Item li2) ; /* 操作: 查找链表中数据域为指定数据的元素 */ /* 操作前: pli 指向一个已初始化的链表, li1, li2 是要查找的指定数据 */ /* 操作后: 如果找到该元素, 返回 1; 否则返回 0 */ /* 时间复杂度: O (N) */ int Find_L (const List * const pli, const Linked_List_Item li1, const Linked_List_Item li2) ; /* 操作: 删除链表中数据域为指定数据的元素 */ /* 操作前: pli 指向一个已初始化的链表, li1, li2 是要删除的指定数据 */ /* 操作后: 如果找到该元素, 删除该元素, 返回 1; 否则返回 0 */ /* 时间复杂度: O (N) */ int Delete_L (List * const pli, const Linked_List_Item li1, const Linked_List_Item li2) ; /* 操作: 从头到尾将一个函数依次作用于链表中的所有元素一次 */ /* 操作前: pli 指向一个已初始化的链表, pfun 指向一个没有返回值, 接受一个指向Linked_List_Node指针类型参数的函数 */ /* 操作后: fun 指向的函数从头至尾依次作用于链表中的所有元素一次 */ /* 时间复杂度: O (N) */ void Traversal_L (const List * const pli, void (* pfun) (const Linked_List_Node * const pln)) ; /* 操作: 释放一个链表所占用的内存空间 */ /* 操作前: pli 指向一个已初始化的链表 */ /* 操作后: 该链表占用的内存空间被释放 */ /* 时间复杂度: O (N) */ void Release_L (const List * const pli) ;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值