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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ищу ответы на вопросы из задачника Златопольского Д. М. "Сборник задач по программированию " http://www.cyberforum.ru/cpp-beginners/thread172807.html
Есть отличнейший задачник Златопольский Д. М. "Сборник задач по программированию " но решений в нём нет((( и найти их что-то не получаеться, может у кого есть, а то задачи решаю и очень хотелось бы свериться!
C++ В строке символов поменять местами символы на четных и нечетных позициях В строке символов поменять местами символы на четных и нечетных позициях. http://www.cyberforum.ru/cpp-beginners/thread172805.html
Множители C++
Дано количество способов разложить число на множители. Нужно узнать это число (наименьшее из них). Я использовал перебор чисел, для каждого узнавал количество делителей и сравнивал с нужным нам. (Число способов меньше 50). Но для чисел 31, 27, 43, 46, 47 ответ найти не удалось. Пример: Ввод: 4 Перебор..... 24=1*24=2*12=3*8=4*6 - всего 4 способа (2*12 и 12*2 считаются одним способом) Вывод: 24...
C++ Функция поиска символа
Всем привет. Есть ли в Си функция поиска символа, слова в строке? В паскале для этого есть pos(); Как определять строковый тип? String x;?
C++ Генерация звука http://www.cyberforum.ru/cpp-beginners/thread172787.html
Помогите написать программу для генерации звука через системный динамик с определённой продолжительностю(НА Си).
C++ Наследование в классах Уважаемые пожскажите по теме Есть класс Автомобиль (например ВАЗ 2114) и класс ТО_Автомобиля (например ТО1 и ТО2) как должно наследоваться: Автомобиль от ТО или ТО от Автомобиля, почему то застопорился на таком простом вопросе. подробнее

Показать сообщение отдельно
Evgeniy92
Сообщений: n/a

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

05.10.2010, 18:18. Просмотров 277. Ответов 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;
	    }
      }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru