作业介绍

C4.08 双向链表

课堂内容:双向链表的创建、遍历查找、修改、增加、删除

image

image

image

image

image

image

image

image

image

image

  • 双向链表的创建与输出_参考代码

#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 小时