作业介绍
C4.08 双向链表
课堂内容:双向链表的创建、遍历查找、修改、增加、删除
-
双向链表的创建与输出_参考代码
#include<bits/stdc++.h>
using namespace std;
// 定义节点结构体
struct Node
{
int data;
Node *prev;
Node *next;
};
int main()
{
Node *head,*r,*p;
// 初始化链表
head=new Node; // 创建链表头指针(head)
head->prev=NULL; // 并将其指向空,表示链表为空
head->next=NULL;
r=head; // 将 r 指向 head,表示尾部
int n;
cin>>n;
for(int i=1;i<=n;i++) // 创建 n节点
{
p=new Node; // 动态分配内存空间给新节点使用(p)
cin>>p->data; // 将新节点(p)其数据域初始化为给定值
p->next=NULL; // 将新节点(p)的指针域(next)指向NULL
p->prev=r; // 将新节点(p)的指针域(prev)指向上一个节点(r)所在的内存位置(即内存地址)
r->next=p; // 将原链表尾部节点(r)的指针(next)指向新结点(p)所在的内存位置(即内存地址)
r=p; // 将(r)指向新节点(p)的内存位置,表示新的尾部
}
// 循环链表
p->next=head;
head->prev=p;
p=head->next; // 返回第一个节点
while(p!=head) // 节点(p)未到 head 表示链表没有循环完毕
{
cout<<p->data<<" "; // 输出当前节点的数据值
p=p->next; // 更新下一个节点
}
return 0;
}
题目
认领作业后才可以查看作业内容。
- 状态
- 正在进行…
- 题目
- 4
- 开始时间
- 2024-1-1 0:00
- 截止时间
- 2099-12-31 23:59
- 可延期
- 0 小时