#include<iostream>
using namespace std;
typedef struct Linklist//这里的Linklist相当于我们自己创建的数据类型和如int、double
{
int a;
Linklist* next;
}node;//这里的node是定义的结构体变量
Linklist* Init (int n )//n为结点的个数,另外一点,初始化链表只需要传入节点个数即可,无需传递链表作为参数
{
Linklist* head = new Linklist;//创建一个头节点,这也是我们找到他的依据
Linklist* pre = head;//创建第一个存放数据的节点之前,head就是pre,所以我们把head赋给pre
for (int i=0; i < n; i++)
{
Linklist* newnode = new Linklist;//创建新节点
cout << "请输入第" << i+1 << "个数据" << endl;
cin >> newnode->a;
pre->next = newnode;
pre = newnode;//这里留下一个问题,为什么头结点不存放数据呢?
newnode->next = NULL;
}
return head;
}
void Print(Linklist* head)
{
Linklist* p = head->next;//head头指针数据域为空,所以p要从head的下一个节点开始遍历。
while (p)//当p遍历到最后一个的下一个时,即为null时退出循环。
{
cout << "链表中数据为:" << p->a << endl;
p = p->next;
}
}
【数据结构】链表头插法的实现
于 2022-03-14 22:21:09 首次发布
本文详细探讨了如何使用C++编程语言实现链表的头插法操作,内容涵盖链表基础知识及头插法的具体步骤,帮助读者深入理解数据结构中链表这一重要概念。
摘要由CSDN通过智能技术生成