单链表的定义

回顾:

这节学习单链表

什么是单链表以及单链表与循序表的对比

用代码定义一个单链表

typedef struct LNode//定义一个单链表结点类型
{
    ElemType data;//数据域  //每个节点存放一个数据元素
    struct LNode* next;//指针域 //指针指向下一个结点
}LNode;
  • 增加一个新的结点;在内存中申请一个结点所需要的空间,并用指针p指向这个结点

struct LNode *p =(struct LNode*)malloc(sizeof(struct LNode));

  • typedef 关键字--数据类型重命名

定义不带头结点的单链表

typedef struct LNode//定义一个单链表结点类型
{
    ElemType data;//数据域  //每个节点存放一个数据元素
    struct LNode* next;//指针域 //指针指向下一个结点
}LNode,*LinkList;
//初始化一个空的单链表
bool InitList(LinkList &L)
{
    L=NULL;
    return true;
}
//判断单链表是否为空
bool Empty(LinkList L)
{
    if(L==NULL)
        return true;
    else
        return false;
}
void test()
{
    LinkList L;//声明一个指向单链表的指针
    //初始化一个空表
    InitList(L);
//......
}

带头结点的单链表

typedef struct LNode//定义一个单链表结点类型
{
    ElemType data;//数据域  //每个节点存放一个数据元素
    struct LNode* next;//指针域 //指针指向下一个结点
}LNode,*LinkList;
//初始化一个单链表(带头结点)
bool InitList(LinkList &L)
{
    L=(LNode*)malloc(sizeof(LNode));//分配一个头结点
    if(L==NULL)
        return false;//内存不足,分配失败
    L->next=NULL;//头结点之后暂时还没有结点
    return true;
}
//判断单链表是否为空
bool Empty(LinkList L)
{
    if(L->next==NULL)
        return true;
    else
        return false;
}
void test()
{
    LinkList L;//声明一个指向单链表的指针
    //初始化一个空表
    InitList(L);
//......
}

​

下节会细讲带头结点和不带头结点的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

写不出bug的小李

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

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

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

打赏作者

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

抵扣说明:

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

余额充值