C++ 强大的内功(链表)

大致结构
C++基础(奇牛学院)
链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必须相邻,那么 怎么表示逻辑上的相邻关系呢?可以给每个元素附加一个指针域,指向下一个元素的存储位 置。如图所示:
在这里插入图片描述
相比数组而言可以在堆上申请空间,大家都知道栈的空间是有限的 而堆的空间相对来说会大很多
数组需要的内存是连续的,如果申请过大很有可能申请不成功,在这个时候链表就产生了

结构定义:
其结构体定义:
*Typedef struct LinkNode
{
ElemType data;
struct LinkNode next;
}LinkList, LinkNode;

LinkList;//表示链表本身
LinkNode;//表示链表中的一个空节点

初始化链表
我们需生成一个链表的头节点(注刚开始只有头节点)
然后把这个头节点的数据置为空 (有头节点的链表更加方便)

bool InitList(LinkList &L)
{
L = new LinkNode;
if(!L) return false;//生成节点失败
L->next = NULL;
L->data = -1;
return true;
}
*

我们要插入节点的话就需遍历(尾插法)
我们把链表的尾部指针置为空,刚生成的这个结构体指针部分也置空
然后把不停的遍历,直到遍历到null为止
然后直接插入到尾端(注结构体在main函数中生成)
*bool ListInsert_back(LinkList &L, LinkNode node)
{
LinkNode last = NULL;
if(!L || !node) return false;
last = L;
while(last->next)
last = last->next;
node->next = NULL;
last->next = node;
return true;
}

更多技术分享~技术交流,奇牛学院欢迎您、

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值