Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:16_II / удаление элемента
.cpp#include <iostream>
using namespace std;
struct List { int data;
List *next;};
void create_List (List *&nach, int n){
List *p;
nach=0;
for(int i=0; i<n;i++){
p=new List;
cin>>p->data;
p->next=nach;
nach=p;}
}
void pokaz_List(List *nach){
List *p;
p=nach;
while (p!=0){
cout<<p->data<<" ";
p=p->next;}
}
List *adress_x_List(List *nach,int x){
List *p;
p=nach;
while((p!=0)&&(p->data!=x))
p=p->next;
return p;
}
List *adress_pred_x_List(List *nach,int x){
List *p, *pred_p;
p=nach;
pred_p=0;
while((p!=0)&&(p->data!=x)){
pred_p=p;
p=p->next;
}
return pred_p;
}
void Delete_x_List(List *&nach, int x){
List *p, *q;
if(adress_x_List(nach,x)==nach)
nach=nach->next;
else if (adress_x_List(nach,x)!=0){
p=adress_x_List(nach,x);
q=adress_pred_x_List(nach,x);
q->next=p->next;
delete p;
}
}
void main(){
int n,x;
List *q;
List *nach1;
cout<<"n= ";
cin>>n;
create_List(nach1,n);
pokaz_List(nach1);
cout<<endl;
cout<<"x= ";
cin>>x;
q=adress_pred_x_List(nach1,x);
Delete_x_List(nach1,x);
cout<<endl;
pokaz_List(nach1);
cout<<endl;
}
Соседние файлы в папке 16_II