1、linklist.h文件
#ifndef __LINKLIST_H__
#define __LINKLIST_H__
typedef char datatype;
//定义结点类型
typedef struct Node{
union{
int len; //头结点数据域
datatype data; //普通结点数据域
};
struct Node *next; //指针域
}LinkList;
//创建链表
LinkList *list_create();
//判空
int list_empty(LinkList *L);
//申请结点封装数据
LinkList *buy_node(datatype e);
//头插
int list_insert_head(LinkList *L,datatype e);
//尾插
int list_insert_tail(LinkList *L,datatype e);
//按位置查找返回位置
LinkList* find_node(LinkList *L,int pos);
//任意位置插入
int list_insert_pos(LinkList *L,int pos,datatype e);
//遍历
void list_show(LinkList *L);
//头删
int list_delete_head(LinkList *L);
//尾删
int list_delete_tail(LinkList *L);
//任意位置删除
int list_delete_pos(LinkList *L,int pos);
//按位置修改
int list_update_pos(LinkList *L,int pos,datatype new_e);
//按值进行修改
int list_update_value(LinkList *L,datatype e,datatype new_e);
//按值查找返回结点位置
int list_find_value(LinkList *L,datatype e);
//链表逆置
void list_reverse(LinkList *L);
//释放
void list_free(LinkList *L);
#endif
2、linklist.c文件
#include <stdio.h>
#include <stdlib.h>
#include "linklist.h"
//创建链表
LinkList *list_create(){
//申请一个结点的空间
LinkList *L = (LinkList *)malloc(sizeof(LinkList));
if(NULL==L){
printf("创建失败\n");
return NULL;
}
//进行初始化
L->len = 0;
L->next = NULL;
printf("创建成功\n");
return L;
}
//判空
int list_empty(LinkList *L){
return L->next==NULL;
// return L->next