Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Evgeniy92
#1

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

05.10.2010, 18:18. Просмотров 289. Ответов 0
Метки нет (Все метки)

Помогите написать программу для добавление нового элемента в однонаправленный список перед минимальным ключом списка. Добавление элем реализую в "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++
Помогите пожалуйста разобраться с этим заданием. Дан список вещественных массивов (максимально 30 массивов). Каждый массив...

В одномерном массиве состоящим из "N" вещественных элем. вычислить максимальный по модулю элем. массива - C++
В одномерном массиве состоящим из &quot;N&quot; вещественных элем. вычислить максимальный по модулю элем. массива. Помогите пожалуйста, желательно...

добавление в список - C++
Доброй ночи !! Есть проблема мне нужно заполнить список числами с файла остальное я сделаю сам #include &lt;iostream&gt; #include...

Добавление элементов в список - C++
привет. я только начала разбираться со списками. вот написала программу по добавлению элементов. мне просто для начала нужна...

Добавление элементов в список - C++
Добрый вечер господа, вобщем написал я тут список, вот такой: #include &lt;vcl.h&gt; #pragma hdrstop #pragma argsused #include...

Добавление в элементов в список - C++
Всем привет. Не могу в чем проблема. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; struct...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2010, 18:18
Привет! Вот еще темы с ответами:

Добавление элемента в список - C++
У меня есть список, пока в нем функции вывода данных print, добавление add и вывод первого Begin() и последнего End() элементов. struct...

Добавление элемента в список - C++
Spis2* put(Spis2 *current, int info) { Spis2 *temp = new Spis2; temp-&gt;info = info; temp-&gt;next = current; temp-&gt;prev = NULL; ...

Добавление элемента в двусвязный список - C++
Здравствуйте, нужно вставить элемент в двусвязный список Написала код, но он не работает. tek=first; while(tek) {i++; ...

Добавление элементов в список - ошибка - C++
Ошибка при добавлении элементов в список: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; struct node { char*...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru