Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2015, 00:38   #1
ОлегИванов
Новичок
Джуниор
 
Регистрация: 21.09.2015
Сообщений: 2
По умолчанию Линейные списки на С++.

Добрый вечер!
Задание: Если среди первых четырех элементов есть один нечетный, то вставить его на второе место, иначе удалить максимальный из них.
Используя из данного примера

Код:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <malloc.h>
#include <math.h>
#define List struct list

List {int Dn; List* Nx;};
class cList
{ protected: List* p;
public: cList() {p=NULL;};
~cList();
int Empty () {return (p==NULL);};
void AddHead(int D) {List*q=new(List); q->Dn=D; q->Nx=p; p=q;};
void AddEnd(int D);
void Display ();
void Insert (int D, int k);
void DelFirst() {List*q=p; p=p->Nx; delete(q);};
long Len();
};

void cList :: Display() {
List* t=p;
if(p) while (t) {cout<<t->Dn<<" "; t=t->Nx;}
else cout<<"->|";
cout<<"\n";
};

void cList::AddEnd(int D)
{ List* q=new List; q->Dn=D; q->Nx=NULL;
List* t=p; if(p) {while (t->Nx) t=t->Nx; t->Nx=q; } else p=q;
};

long cList::Len()
{ if(p) { List*t=p; long i=0; while(t) {t=t->Nx; i++;}; return i; };
return 0;
};
void cList::~cList() {while (!Empty()) DelFirst();};
void cList::Insert(int D, int k)
{List*t=p; int i=1;
if(k==1) AddHead(D);
else {while (i<k-1) {t=t->Nx; i++;};
List* q=new List; q->Dn=D; q->Nx=t->Nx; t->Nx=q;};
};

void main()
{clrscr();
cout<<_memavl()<<"\n"; randomize();
cList L1;

cout<<L1.Empty()<<endl;
for(int i=1; i<23; i++) L1.AddHead(random(99));
L1.Insert(-1,5);
L1.Display();
L1.DelFirst();
L1.Display();
L1.~cList();
L1.Display();
cout<<_memavl()<<"\n";
getch();

}

Последний раз редактировалось Stilet; 21.09.2015 в 07:19.
ОлегИванов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Линейные списки С++ неПрограммистка12 Помощь студентам 0 06.05.2012 16:48
Линейные списки ]tach[ Помощь студентам 0 19.01.2011 16:59
Линейные списки svt Помощь студентам 1 20.11.2010 08:22
Линейные списки Rusl92 Паскаль, Turbo Pascal, PascalABC.NET 3 26.04.2010 09:24