Объединение объектов класса С++

217
07 декабря 2017, 01:05

Нужна помощь с выполнением задания: Создать класс-однонаправленный список с элементами типа char. Перегрузить операции: объединение списков,доступ к элементу по номеру,проверка на равенство. Конкретно с первым "Объединение списка" у меня проблема. Остальное я реализовал.

 #include "stdafx.h"
    #include "iostream"
    using namespace std;
    class Element{
    public:
        char data;
        Element *next;
        Element(){
            next = NULL;
        }
    };
    class Spisok{
    private:
        Element *head;
        int size;
    public:
        Spisok(){
            head = new Element();
            head->data = NULL;
            size = 0;
        }

void AddToStart(char d){
            if (head->data == NULL){
                head->data = d;
                size++;
            }
            else{
                Element * temp = new Element();
                temp->data = d;
                temp->next = head;
                head = temp;
                size++;
            }
        }

void AddToStart(Element *el){
            if (head->data == NULL){
                head->data = el->data;
                size++;;
            }
            else{
                Element * temp = new Element();
                temp->data = el->data;
                temp->next = head;
                head = temp;
                size++;
            }
        }

Element * Get(int n){
                if (n < size){
                    if (n == 0){
                        Element * temp = head;
                        return temp;
                    }
                    else{
                        Element * temp = head->next;
                        for (int i = 1; i < n; i++){
                            temp = temp->next;
                        }
                        return temp;
                    }
                }
                else{
                    return NULL;
                }
            }

void getn(int i){
            Element *temp1;
            temp1 = Get(i);
            cout << temp1->data <<endl;
        }

bool Ravenstvo(Spisok * spis2){
            Element *temp1, *temp2;
            for (int i = 0; i < size; i++){
                temp1 = Get(i);
                temp2 = spis2->Get(i);
                if (temp1->data != temp2->data){
                    return false;
                }
            }
            return true;
        }

void Show(){
            Element * temp = head;
            while (temp != NULL){
                cout << temp->data << " ";
                temp = temp->next;
            }
            cout << endl;
        }
    };


    int main(){
        cout << "1-st spisok" << endl;
        Spisok *spis1 = new Spisok();
        spis1->AddToStart('a');
        spis1->AddToStart('b');
        spis1->AddToStart('c');
        spis1->Show();
        spis1->getn(0);
        spis1->DelFromStart();
        spis1->Show();
        cout << "2-nd spisok" << endl;
        Spisok *spis2 = new Spisok();
        Element * el1 = new Element();
        el1->data = 'd';
        Element * el2 = new Element();
        el2->data = 'e';
        Element * el3 = new Element();
        el3->data = 'f';
        spis2->AddToStart(el1);
        spis2->AddToStart(el2);
            spis2->AddToStart(el3);
            spis2->Show(); 
system("pause");
    return 0;
}
READ ALSO
Вывод ассемблеровского кода в с++

Вывод ассемблеровского кода в с++

Добрый деньСтолкнулся с проблемой компиляции кода asm в с++

275
Удаление и вывод самого короткого слова

Удаление и вывод самого короткого слова

Как вместо вывода самого короткого слова произвести его удаление из in и вывести остальное в out?

213
Оператор сравнения == в С++

Оператор сравнения == в С++

Как реализовать сравнение двух переменных, чтобы получить значение типа bool, говорящее, равны они или нетЧто надо изменять? Написал вроде...

228
Аргумент функции в виде объекта класса

Аргумент функции в виде объекта класса

У меня есть класс для значений давленийВ приведенном ниже коде вылезает ошибка:

286