Удаление Элементов Из Односвязного Списка

  • Автор темы mcbeat
  • Дата начала
M

mcbeat

#1
Сделал список, теперь нужно удалить каждый второй элемент((

Помогите пожалуйста, уже второй день мучаюсь(((

C++:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>

struct Node{
int data;
Node*next;};

int main(){
Node*start;
int m,q,r;

cout<<"Кол-во записей: "<<endl;
cin>>q;
printf("Element: ");
cin>>m;
Node*spis=new Node;
spis->data=m;
spis->next=NULL;
start=spis;
for(int i=0;i<q-1;i++){
spis->next=new Node;
printf("Element: "); 
cin>>m;
spis->next->data=m;			 
spis->next->next=NULL;
spis=spis->next;}
spis=start;
while(spis){
cout<<" \nPole: "<<spis->data<<" \nTek adress: "<<spis<<" \nNext adress: "<<spis->next<<endl;
spis=spis->next;}
int n,kol=0,max=0;			 //Вывод всех ел
cout<<" \nVvedite M=";
cin>>n;
spis=start;
while(spis){
if(spis->data==n) kol++;	  //Количество ел с м свойствами 
spis=spis->next;}
cout<<" \nKolichestvo elementov: "<<kol;

spis=start;
max=spis->data;
while(spis){
if(spis->data>max)	//Макс ел
max=spis->data;
spis=spis->next;}
cout<<" \nMaximaln element: "<<max;
spis=start;
while(spis->next!=NULL){	  
Node*tmp;
tmp=spis->next->next;  // Удаление 
delete spis->next;
spis->next=tmp;
spis=spis->next;
}
while(spis){
cout<<" \nPole: "<<spis->data<<" \nTek adress: "<<spis<<" \nNext adress: "<<spis->next<<endl;
spis=spis->next;}

getch(); 
return 0;
}