大致结构
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;
}
更多技术分享~技术交流,奇牛学院欢迎您、