C语言: 单链表的功能实现

实现功能:

//单链表的创建
//单链表的头插入
//单链表的遍历
//单链表的尾插
//单链表的任意插
//单链表的头删
//单链表的尾删
//单链表的任意删
//单链表的反转
//单链表的排序
//单链表的剔重复
//修改链表中的元素----按照位置
//清空链表
//释放链表
//两个单链表的合并

实现的代码:

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-&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值