作业介绍
C4.07 单向链表
课堂内容:单向链表创建、遍历查找、修改、增加、删除
单向链表的创建与输出_参考代码
#include<bits/stdc++.h>
using namespace std;
// 定义节点结构体
struct Node
{
int data;
Node *next;
};
int main()
{
Node *head,*r,*p;
// 初始化链表
head=new Node; // 创建链表头指针(head),并为其分配内存
head->next=NULL; // 初始化头指针的 next为 NULL,表示链表为空
r=head; // r 指针初始指向头节点,用于后续添加新节点
int n;
cin>>n;
for(int i=1;i<=n;i++) // 遍历 n 次,创建 n 个节点
{
p=new Node; // 为新节点分配内存
cin>>p->data; // 输入新节点的值
p->next=NULL; // 初始化新节点的 next为 NULL
r->next=p; // 将r指针的 next 指向新节点 p
r=p; // 更新 r 指针,使其指向新节点 p
}
// 此处将链表的尾部与头部相连,形成循环链表
p->next=head; // 注意这里 p 已经是最后一个节点了,因此 p->next 指向 head
p=head->next; // p 重新指向链表的第一个节点
// 遍历链表并输出每个节点的值,注意这里由于形成了循环链表,需要判断p!=head来防止无限循环
while(p!=head) // 节点 next 不为 head 时表示没到链表尾
{
cout<<p->data<<" "; // 输出当前节点的数据值
p=p->next; // 移动到下一个节点
}
return 0;
}
题目
认领作业后才可以查看作业内容。
- 状态
- 正在进行…
- 题目
- 4
- 开始时间
- 2024-1-1 0:00
- 截止时间
- 2099-12-31 23:59
- 可延期
- 0 小时