本文是面对广大C++的学习爱好者。
本文是我在学习链表的过程中,遇到的一些问题后总结出来的经验。希望对您在学习这一块的东西有所帮助。
1.单链表的建立
在建立链表的前提下,我们需定义链表结点的结构体。
typedef struct LNode//LNode结点
{
int val;//结点值
struct LNode* next;//指针
}LNode, * LNodeList;//定义的数据类型和指针数据类型
下面用尾插入法建立单链表
为什么用尾插入法呢?
因为生成的链表中结点的次序与输入数据的顺序是一致的。
下面请看代码
LNodeList List_TailInsert(LNodeList &L)//尾插入法建立链表
{
int x;
L = (LNodeList)malloc(sizeof(LNode));//创建头节点;
LNode* s; LNode* r = L;//s为新结点指针,r为尾指针;
cin >> x;
while (x != 100)
{
s = (LNode*)malloc(sizeof(LNode));//创建新节点;
s->val = x;//赋予新结点的数值
r->next = s;//将新结点插入尾结点
r = s;//尾指针赋给新结点
cin >> x;
}
r->next = NULL;
return L;
}
输入你喜欢的数字,建立线性链表,以100结束。
2.按序号查找结点值
在单链表中从第一个结点出