Помогите пожалуйста! На языке С++Создать базисный класс перечень, определив в нем

Помогите пожалуйста! На языке С++
Сделать базисный класс список, определив в нем функции прибавленья в начало перечня, удаления N-го элемента списка, вывода частей перечня на экран. Породить от него класс упорядоченный перечень, переопределив функцию прибавленья элемента перечня.

Задать свой вопрос
1 ответ

Я так полагаю имеется ввиду базисное понятие перечня?

Если так - тогда я сделал традиционный список с узлами с указателями на следующий элемент.

Простите за за маленькое кол-во комментариев, у меня не так уж и много медли, поэтому я комментировал самое главное.

Мой вариант решения:

include lt;iostreamgt;

using namespace std;

//узел со значением и ссылкой на следующий элемент

struct node

int value;

node* nextElement;

;

class list

protected:

//указатель на первый элемент в списке

node* first;

//кол-во частей в списке

int count;

public:

list()

 count = 0;

 first = NULL;

//вычищаем после себя память

list()

 node* temp;

 while (first != NULL)

 

  temp = first;

  first = first-gt;nextElement;

  delete temp;

 

virtual void addElement(int value)

 if (count == 0)

 

  node* parent = new node;

  parent-gt;value = value;

  parent-gt;nextElement = NULL;

  first = parent;

  count++;

 

 else

 

  node* newNode = new node;

  newNode-gt;value = value;

  newNode-gt;nextElement = first;

  first = newNode;

  count++;

 

int del(int N)

 if (N lt; 1 N gt; count)

 

  cout lt;lt; "\nError.";

  return NULL;

 

 else

 

  //этот указатель будет ссылаться на узел, который нам нужно удалить

  node* target;

  int returnValue;

  if (N == 1)

 

   target = first;

   returnValue = target-gt;value;

   first = first-gt;nextElement;

   delete target;

 

  else

 

   target = first;

   //указатель предшествующего узла, чтобы при удалении связать список поновой

   node* prev = first;

   for (int i = 1; i lt; N; ++i)

   

    prev = target;

    target = target-gt;nextElement;

   

   prev-gt;nextElement = target-gt;nextElement;

   returnValue = target-gt;value;

   delete target;

 

  return returnValue;

 

void print()

 node *temp = first;

 while (temp != NULL)

 

  cout lt;lt; temp-gt;value lt;lt; " ";

  temp = temp-gt;nextElement;

 

 cout lt;lt; endl;

;

class OrderList : public list

private:

//указатель на последний элемент в перечне

node* last;

public:

OrderList() : list()

 last = NULL;

//вычищаем после себя память

OrderList()

 node* temp;

 while (first != NULL)

 

  temp = first;

  first = first-gt;nextElement;

  delete temp;

 

virtual void addElement(int value)

 if (count == 0)

 

  node* parent = new node;

  parent-gt;value = value;

  parent-gt;nextElement = NULL;

  first = parent;

  last = parent;

  count++;

 

 else

 

  node* newNode = new node;

  newNode-gt;value = value;

  last-gt;nextElement = newNode;

  newNode-gt;nextElement = NULL;

  last = newNode;

  count++;

 

;

int main()

//тестируем класс упорядоченного списка

OrderList a;

a.addElement(12);

a.addElement(228);

a.addElement(1337);

a.print();

a.del(2);

a.print();

//тестируем класс списка

list b;

b.addElement(12);

b.addElement(228);

b.addElement(1337);

b.print();

b.del(1);

b.print();

cin.get();

cin.get();

, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо

Разные вопросы.

Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных

Разные вопросы.

Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей

Математика.

Определить предложения какие они по цели высказывания и по интонации

Русский язык.

"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.

Русский язык.

на одной грядке коротышки посадили 3 ряда морковок по 8 штук

Разные вопросы.

эссе на тему какое образование дается в каждой семье

Қазақ тiлi.

Put the verb in brackets into the Present Indefinite. 1The Volga ,

Английский язык.

Сколько стоит коктейль молочный? Точную цену надо?

Математика.

Составить рассказ Из чего складывался культ монарха помазанника Божьего?

История.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт