⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list.h

📁 数据结构的C语言实现
💻 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 + -