Форум программистов, компьютерный форум CyberForum.ru

Добавление элем в список - C++

Восстановить пароль Регистрация
 
Evgeniy92
Сообщений: n/a
05.10.2010, 18:18     Добавление элем в список #1
Помогите написать программу для добавление нового элемента в однонаправленный список перед минимальным ключом списка. Добавление элем реализую в "void los::dobavlenie()" Пока получилось только вставлять элемент в конец списка. А как вставить элемент перед нужным нам элементом, то есть перед минимальным.

Код
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<iomanip.h>
class los
{public:
int N;
int k;
los*next;
static los*p;
void vvod(int n);
void poisk();
void dobavlenie();
void vivod();
void udalenie();
};

los*los::p;

void los::vvod(int n)
{clrscr();
if(n==0)
   p=NULL;
else
   {int m=0;
    los *q;
    p=new los;
    cout<<"Vvedite 1 klutch\n";
    p->N=m+1;
    cin>>p->k;
    m++;
    q=p;
    for(int i=1;i<n;i++)
       {q->next=new los;
	cout<<"Vvedite "<<i+1<<" klutch\n";
	q=q->next;
	q->N=m+1;
	cin>>q->k;
	m++;}
	q->next=NULL; }
getch();
}

void los::vivod()
{los *q;
q=p;
while(q!=NULL)
     {cout<<q->N<<"\n";
      cout<<q->k<<"\n";
      q=q->next;}
getch();
}

void los::poisk()
{clrscr();
los *q;
int m=1;
int f=1;
cout<<"Nomer - ";
cin>>m;
q=p;
while(q!=NULL&&f<m)
     {f++;
      q=q->next;}
if(q!=NULL&&f==m)
  {cout<<q->N<<"\n";
  cout<<q->k<<"\n";}
else
   cout<<"Element ne naiden.\n";
getch();
}

void los::dobavlenie()
{clrscr();
los *q;
los *r;
los *o;
int k;
cout<<"Vvedite klutch.\n";
r=new los;
cin>>r->k;
q=p;
while(q->next!=NULL)
q=q->next;
if(q->next==NULL)
q->next=r;
r->next=NULL;
vivod();
getch();
}

void los::udalenie()
{clrscr();
los *q;
if(p->N==2)
   {q=p->next;
    delete p;
    p=q;}
else
   {q=p;
   los *t;
   int f;
   while(q!=NULL&&q->N!=2)
      q=q->next;
   t=q;
   f=q->N;
   los *o;
   los *r;
   q=p;
    while(q!=NULL&&q->N!=f)
	 {if(q->N<f)
	     o=q;
	  q=q->next;
	  r=q->next;}
    if(q->N==f)
      {o->next=r;
       delete q;}
    else
       cout<<"Element ne naiden.\n"; }
vivod();
getch();
}

void main()
{int n;
clrscr();
cout<<"Vvedite kol-vo elementov.\n";
cin>>n;
los obj;
obj.vvod(n);
while(getch()!=27)
     {clrscr();
      cout<<"\n1-vivod"<<"\n2-poisk"<<"\n3-dobavlenie"<<"\n4-udalenie"<<"\n";
      switch(getch())
	    {case'2':obj.poisk();break;
	     case'1':obj.vivod();break;
	     case'3':obj.dobavlenie();break;
	     case'4':obj.udalenie();break;
	    }
      }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2010, 18:18     Добавление элем в список
Посмотрите здесь:

C++ Список массивов (заменить все элем. каждого массива ср. знач. и отсортировать список)
C++ добавление в список
C++ В одномерном массиве состоящим из "N" вещественных элем. вычислить максимальный по модулю элем. массива
Добавление элементов в список C++
работа с последовательностью (удалить из массива элем-т, расположенный после 1-го элем-та с max значением, и элем-т после 1-го элем-та с min знач.) C++
C++ Добавление элементов в список
Добавление элемента в список C++
C++ Добавление элемента в список

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru