给定N个整数,将这些整数中与M相等的删除
假定给出的整数序列为:1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3
应该将其放在一个链表中,链表长度为20
要删除的数是3,删除以后,链表中只剩14个元素:1 0 -3 5 6 8 10 22 -1 5 11 20 100 9
要求:必须使用链表,不允许使用数组,也不允许不删除元素直接输出
程序中必须有链表的相关操作:建立链表,删除元素,输出删除后链表中元素,释放链表。
不符合要求的程序即使通过,也会算作0分
#include<bits/stdc++.h>
using namespace std;
struct Node
{
int data;
Node *next;
};
Node *head,*p,*r;
int x;
int main()
{
int n,m,i;
head=new Node;
r=head;
cin>>n;
i=n;
while(i>0)
{
cin>>x;
p=new Node;
p->data=x;
p->next=NULL;
r->next=p;
r=p;
i--;
}
cin>>m;
p=head->next;
do
{
if(p->next->data==m)
{
Node *s;
s=p->next;
p->next=p->next->next;
free(s);
}
p=p->next;
}while(p->next!=NULL);
p=head->next;
do
{
cout<<p->data<<" ";
p=p->next;
}while(p->next!=NULL);
return 0;
}
没法子输出。