数据结构————带头结点单链表讲解

单链表分为带头结点的和不带头结点的,两者的根本区别在于是否有不存储元素的头结点。头结点的存在可以让链表为空的时候不销毁,操作也更方便,不用附带二级指针。

表示形式

每一个结点都有指针域和数据域,指针域用来指向下一个结点,数据域用来存放该结点的元素。

基本操作

单链表的基本操作有初始化、前插、后插、前删、后删等。后面我们将讲述基于这些基本操作上更复杂的操作。

1.初始化

typedef int LNdataType;
typedef struct ListNode{
    struct ListNode*next;
    LNdataType data;
}LT,*Link;
void InitList(Link phead){
    if(phead==NULL)
         return;
    else
        phead->next=NULL;
}

2.前插

void InsertListfront(Link phead,LNdataType x){
     LN*newnode=(LN*)malloc(sizeof(LN));
     if(newnode==NULL)
        exit(-1);
     else{
        newnode->data=x;
        newnode->next=phead->next;
        phead->next=newnode;
    }
}

3.后插

void InsertListback(Link phead,LNdataType x){
     LN*newnode=(LN*)malloc(sizeof(LN));
     if(newnode==NULL){      
        ex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妮妮妮妮没事吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值