slist_t

概述

单向链表

用slist_init初始化时,用slist_deinit释放。如:

  1. slist_t slist;
  2. slist_init(&slist, destroy, compare);
  3. ...
  4. slist_deinit(&slist);

用slist_create创建时,用slist_destroy销毁。如:

  1. slist_t* slist = slist_create(destroy, compare);
  2. ...
  3. slist_destroy(slist);

函数

函数名称 说明
slist_append 在尾巴追加一个元素。
slist_count 返回满足条件元素的个数。
slist_create 创建slist对象
slist_deinit 清除单向链表中的元素。
slist_destroy 清除单向链表中的元素,并释放单向链表对象。
slist_find 查找第一个满足条件的元素。
slist_foreach 遍历元素。
slist_init 初始化slist对象
slist_prepend 在头部追加一个元素。
slist_remove 删除第一个满足条件的元素。
slist_remove_all 删除全部元素。
slist_size 返回元素个数。

属性

属性名称 类型 说明
compare tk_compare_t 元素比较函数。
destroy tk_destroy_t 元素销毁函数。
first slist_node_t* 首节点。

slist_append 函数


  • 函数功能:

在尾巴追加一个元素。

  • 函数原型:
  1. ret_t slist_append (slist_t* slist, void* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
slist slist_t* 单向链表对象。
data void* 待追加的元素。

slist_count 函数


  • 函数功能:

返回满足条件元素的个数。

  • 函数原型:
  1. int32_t slist_count (slist_t* slist, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回元素个数。
slist slist_t* 单向链表对象。
ctx void* 比较函数的上下文。

slist_create 函数


  • 函数功能:

创建slist对象

  • 函数原型:
  1. slist_t* slist_create (tk_destroy_t destroy, tk_compare_t compare);
  • 参数说明:
参数 类型 说明
返回值 slist_t* 单向链表对象。
destroy tk_destroy_t 元素销毁函数。
compare tk_compare_t 元素比较函数。

slist_deinit 函数


  • 函数功能:

清除单向链表中的元素。

  • 函数原型:
  1. ret_t slist_deinit (slist_t* slist);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
slist slist_t* 单向链表对象。

slist_destroy 函数


  • 函数功能:

清除单向链表中的元素,并释放单向链表对象。

  • 函数原型:
  1. ret_t slist_destroy (slist_t* slist);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
slist slist_t* 单向链表对象。

slist_find 函数


  • 函数功能:

查找第一个满足条件的元素。

  • 函数原型:
  1. void* slist_find (slist_t* slist, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 void* 如果找到,返回满足条件的对象,否则返回NULL。
slist slist_t* 单向链表对象。
ctx void* 比较函数的上下文。

slist_foreach 函数


  • 函数功能:

遍历元素。

  • 函数原型:
  1. ret_t slist_foreach (slist_t* slist, tk_visit_t visit, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
slist slist_t* 单向链表对象。
visit tk_visit_t 遍历函数。
ctx void* 遍历函数的上下文。

slist_init 函数


  • 函数功能:

初始化slist对象

  • 函数原型:
  1. slist_t* slist_init (slist_t* slist, tk_destroy_t destroy, tk_compare_t compare);
  • 参数说明:
参数 类型 说明
返回值 slist_t* 单向链表对象。
slist slist_t* 单向链表对象。
destroy tk_destroy_t 元素销毁函数。
compare tk_compare_t 元素比较函数。

slist_prepend 函数


  • 函数功能:

在头部追加一个元素。

  • 函数原型:
  1. ret_t slist_prepend (slist_t* slist, void* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
slist slist_t* 单向链表对象。
data void* 待追加的元素。

slist_remove 函数


  • 函数功能:

删除第一个满足条件的元素。

  • 函数原型:
  1. ret_t slist_remove (slist_t* slist, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
slist slist_t* 单向链表对象。
ctx void* 比较函数的上下文。

slist_remove_all 函数


  • 函数功能:

删除全部元素。

  • 函数原型:
  1. ret_t slist_remove_all (slist_t* slist);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
slist slist_t* 单向链表对象。

slist_size 函数


  • 函数功能:

返回元素个数。

  • 函数原型:
  1. int32_t slist_size (slist_t* slist);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回元素个数。
slist slist_t* 单向链表对象。

compare 属性


元素比较函数。

  • 类型:tk_compare_t
特性 是否支持
可直接读取
可直接修改

destroy 属性


元素销毁函数。

  • 类型:tk_destroy_t
特性 是否支持
可直接读取
可直接修改

first 属性


首节点。

  • 类型:slist_node_t*
特性 是否支持
可直接读取
可直接修改