1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем mcbeat, 22 дек 2011.

  1. mcbeat

    mcbeat Гость

    Репутация:
    0
    Сделал список, теперь нужно удалить каждый второй элемент((

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

    Код:
    #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;
    }
     
Загрузка...

Поделиться этой страницей