作业介绍
AC
#include<iostream>
using namespace std;
struct node{
int data;
node *next;
}*head,*p,*r;//定义三个节点头结点,尾节点,中间节点
int n,x,m;
int main(){
cin>>n;//有n个数字
head=new node;//头节点申请新内存
r=head;//此时头尾是同一个节点
for(int i=1;i<=n;i++){//循环n次更新链表
cin>>x;
p=new node;//申请新空间
p->data=x;//更新数据域
p->next=NULL;//更新指针域为下个节点为空
r->next=p;//将p节点插入链表最后一个
r=p;//更新尾节点
}
cin>>m;//找到删除的数字
p=head;//为了循环遍历,将p设为头节点
while(p->next!=NULL){//当前节点的下一个不为空那么就继续遍历
if(p->next->data==m){//如果下一个节点的数据域是我们需要删除的数字
p->next=p->next->next;//那么就断开链条指向当前位下一位的下一位
}
else p=p->next;//否则更新中间节点p到下一个节点
}
p=head;//为了循环遍历,将p设为头节点
while(p->next!=NULL){
cout<<p->next->data<<" ";//输出下一个节点的数据域
p=p->next;//更新中间节点p到下一个节点
}
return 0;
}
//链表的删除操作
p=head;
while(p->next!=NULL){
if(p->next->data==m){
s=new node;
s->data=q;
s->next=NULL;
s->next=p->next->next;
p->next->next=s;
}
p=p->next;
}
//插入操作
- 状态
- 已结束
- 题目
- 5
- 开始时间
- 2024-3-8 0:00
- 截止时间
- 2024-4-25 23:59
- 可延期
- 24 小时