📄 list.h
字号:
/*****************************************************************/
/*
* Copyright (c) 2008,北京归创科技有限公司技术部
* All rights reserved.
*
* 文件名称:list.h
* 用 途:单链表的接口说明
* 创建日期:2008年5月29日
*/
/*****************************************************************/
#ifndef DS_LIST_H
#define DS_LIST_H
#include "ds_define.h"
/*****************************************************************/
/*
* 单链表节点结构声明
*/
/*****************************************************************/
typedef struct list_node
{
void *data;
struct list_node *next;
} list_node;
/*****************************************************************/
/*
* 单链表结构声明
*/
/*****************************************************************/
typedef struct list
{
list_node *head;//头指针
int length;//单链表节点长度
} list;
/*****************************************************************/
/*
* 创建单链表结构,返回单链表指针,若创建失败,则返回NULL
*/
/*****************************************************************/
list *list_create();
/*****************************************************************/
/*
* 在单链表尾部中插入节点数据,返回DS_SUCCESS表示插入成功,否则返回错误号(define.h中定义)
*/
/*****************************************************************/
DS_RESULT list_insert(void *data,list *dl);
/*****************************************************************/
/*
* 在单链表指定位置插入节点数据,返回DS_SUCCESS表示插入成功,否则返回错误号(define.h中定义)
* 若指定的位置position小于0,则插在表头,大于链表的长度,则插在表尾
*/
/*****************************************************************/
DS_RESULT list_insert_position(void *data,list *dl,int position);
/*****************************************************************/
/*
* 在单链表中移除和给定数据内容相同的第一个节点
* 参数说明:
* data:给定数据
* data_length:数据长度
* dl:被操作的单链表
* 返回值:返回找到的元素的data指针,若找不到则返回NULL
*/
/*****************************************************************/
void *list_remove(void *data,int data_length,list *dl);
/*****************************************************************/
/*
* 在单链表中移除指定位置的节点
* 返回值:返回找到的元素的data指针,若找不到则返回NULL
*/
/*****************************************************************/
void *list_remove_position(int position,list *dl);
/*****************************************************************/
/*
* 获取单链表中指定索引的节点数据,若找不到则返回NULL
*/
/*****************************************************************/
void *list_getdata(int index,list *dl);
/*****************************************************************/
/*
* 释放指定的单链表
* 参数说明:
* dl:要释放的链表
* freedata:若为TRUE,则同时释放外部传入的data指针,否则不释放data指针
* 若data指针指向栈自动分配的空间,此时freedata为TRUE时此方法将出错
*/
/*****************************************************************/
void list_free(list *dl,BOOL freedata);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -