实现功能:
//单链表的创建
//单链表的头插入
//单链表的遍历
//单链表的尾插
//单链表的任意插
//单链表的头删
//单链表的尾删
//单链表的任意删
//单链表的反转
//单链表的排序
//单链表的剔重复
//修改链表中的元素----按照位置
//清空链表
//释放链表
//两个单链表的合并
实现的代码:
link_list.h
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct link_list
{
int data;
struct link_list *next;
}node_t;
//单项链表的创建
int creat_list_(node_t ** phead);
//单链表的头插入
int insert_list_head(node_t *phead,int data);
//单链表的遍历
int print_list(node_t * phead);
//单链表的尾插
int insert_list_tail(node_t *phead,int data);
//单链表的任意插
int insert_list_pos(node_t * phead, int pos, int data);
//单链表的头删
int delete_list_head(node_t *phead);
//单链表的尾删
int delete_list_tail(node_t * phead);
//单链表的任意删
int delete_list_pos(node_t * phead,int pos);
//单链表的反转
int diverse_list_(node_t * phead);
//单链表的排序
int sort_list_(node_t * phead);
//单链表的剔重复
int tichong_list_(node_t *phead);
//修改链表中的元素----按照位置
int modify_list_(node_t *phead,int pos,int new_data);
//清空链表
int free_list(node_t*phead);
//释放链表
int distory_list(node_t **phead);
//两个链表的合并
int hebing_list(node_t *p1,node_t*p2);
link_list.c
#include"link_list.h"
//单链表的创建
int creat_list_(node_t ** phead){
if(NULL==phead ){
printf("传参有误..\n");
return -1;
}
*phead=(node_t *)malloc(sizeof(node_t));
if(*phead==NULL ){
printf("内存分配参数失败..\n");
return -1;
}
memset(*phead,0,sizeof(node_t));
return 0;
}
//单链表的头插入
int insert_list_head(node_t *phead,int data){
if(phead==NULL){
printf("头插传参失败..\n");
return -1;
}
node_t * ptemp;
creat_list_(&ptemp);
ptemp->data = data;
ptemp->next = phead->next;
phead-&