数据结构中单向链表的常用函数源码可运行(注释非常详细)

本文提供了单向链表的12种常用函数源码,详细注释帮助理解链表操作。
摘要由CSDN通过智能技术生成

单向链表的常用12种函数源码:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>


/*
单向链表(头节点不带数据):
单向链表对于单向循环链表而言操作差别不大,单向循环链表初始化头节点的时候需要
让自己的next指向自己(head->next=head),遍历的时候需要更该遍历条件即可(p->next != head)
数据结构中,链表需要重点掌握的是单向链表,和双向循环链表
*/

typedef int DATATYPE;        //为int起别名为 DATATYPE

typedef struct  STUDENT      //定义单向链表的结构体类型
{
	DATATYPE number;         //数据域  可以是多个可以是一个 也可以是结构体类型
	struct  STUDENT *next;   // 指针域

}STU, *Link;

//函数声明部分 常用的
Link init_head(void);                                //初始化单链表的头节点
Link creat_node(DATATYPE n);                         //创建单链表的结点
void insert_head(Link head, Link new_node);          //头插法插入结点
void insert_tail(Link head, Link new_node);          //尾插法插入结点
bool is_empty(Link head);                            //判断单向链表是否为空
void display(Link head);                             //遍历单链表
Link found_node(Link head, int n);                   //根据元素查找结点
void deleate_node(Link head, int n);                 //根据元素删除一个结点
bool update(Link head, int old_date, int new_date);  //根据元素修改元素结点
void clean_link(Link head);                          //清空链表
Link remove_node(Link head, int n);                  //根据元素取出结点
void move_node(Link head, int goal, int next);       //移动结点 将值为goal的结点放到值为nex
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值