C/C++数据结构篇Ⅰ---带头节点的单向链表

本文介绍了带头节点的单向链表在C/C++中的应用,包括链表的创建、打印、增、删、改、查等基本操作。通过在实际结点前增加一个首结点,可以简化后续链表操作。
摘要由CSDN通过智能技术生成

链表的概念这里就不细说了,我们直接来看基于链表的基本操作。
这里介绍一种比较常用的链表->带头结点的单向链表。
包括链表的创建、打印、增、删、改、查。
一般建立链表时,需要几个结点我们就创建几个,但如果在我们实际需要的结点最前面再加一个首结点(假的首结点),这样在之后的操作中就会方便很多。

#include <iostream>

using namespace std;

#define OPERAEALL 1 //操作所有
#define OPERAEONE 0 //操作一次

typedef int custom; //结点数据域类型

//链表结点
typedef struct listnode
{
   
    custom elem; //数据域
    struct listnode *next; //指向下一个结点
} NODE;

//链表头结点
typedef struct listhead
{
   
    int number; //有效结点数量
    NODE *first; //指向第一个有效结点
    NODE *last; //指向最后一个有效结点
} HEAD;

HEAD * create_head_node(); //创建头节点
bool printf_list(HEAD *htr); //打印一个链表
HEAD * add_node(HEAD *htr); //增加结点
HEAD * delete_node(HEAD *htr); //删除结点
HEAD * modifly_node(HEAD *htr); //修改结点
HEAD * find_node(HEAD *htr); //查找结点

int main()
{
   
    
    return 0;
}

HEAD * create_head_node()
{
   
    HEAD *htr = new HEAD;
    NODE *ntr = new NODE; //为了方便之后的操作,创建头结点的时候,就让他指向一个无效链表结点,这个结点的数据域是无效的
                            //它是指向链表真正的第一个结点的结点。
    htr->first = ntr;
    htr->last = ntr;
    htr->number = 0; //指向的是无效结点,所以有效结点数还是0<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值