0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 9
1

Создать класс Элемент списка (Node), а затем класс Список (List)

11.11.2016, 19:02. Показов 15071. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или двусвязным.
Пожалуйста, прокомментируйте задание) Что должен делать класс Node и соответственно класс List? Первый класс должен создавать элементы для второго? Не пойму))) И чем отличается односвязный список от двусвязного?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2016, 19:02
Ответы с готовыми решениями:

Класс List. Из списка структур получить список значений одного поля
например, есть структура struct UserInfo { public string Name; public string...

Std::list Удалить элемент если тип списка собственный класс
Подскажите как удалить нужный элемент! И неплохо бы было узнать как обращаться к полям объекта в...

Создать динамический шаблонный класс односвязный список - List
помогите пожалуйста с задание в универ задали и я вот сижу парюсь! буду очень вам благодарен...

Создать обобщенный класс, содержащий список элементов (List <T>)
Народ нужна помощь Нужно создать обобщенный класс, содержащий список элементов (List &lt;T&gt;). ...

1
56 / 56 / 44
Регистрация: 24.03.2016
Сообщений: 378
11.11.2016, 22:10 2
Лучший ответ Сообщение было отмечено pro100ckat как решение

Решение

Вот я недавно похоже задание делал, держи: ( это двух связный список ибо есть указатели на предыдущий элемент и следующий, в односвязном указатели только на следующий )


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>
#include <string>
using namespace std;
 
template<class T>
class Node
{
public:
    T value;
    Node *next;
    Node *prev;
};
 
template<class T>
class List : public Node<T>
{
private:
    Node *beginList;
    Node *endList;
public:
    List() {
        beginList = nullptr;
        endList = nullptr;
    }
    ~List() {
        Node *temp;
        while (beginList)
        {
            temp = beginList;
            beginList = beginList->next;
            delete temp;
        }
    }
    void add(T t);
    void showList();
    void showReverseList();
    bool delItemByValue(T value);
};
 
int main()
{
    List<string>*list = new List<string>;
    list->add("First");
    list->add("Second");
    list->add("Third");
    list->add("Fourth");
    list->showList();
    list->delItemByValue("Third");
    cout << endl; list->showList();
 
    cout << endl;
    list->showReverseList();
 
    delete list;
}
 
template<class T>
void List<T>::add(T t)
{
    if (beginList == nullptr && endList == nullptr) // first add
    {
        Node<T> *temp = new Node<T>;
        temp->value = t;
        temp->prev = nullptr;
        temp->next = nullptr;
        beginList = temp;
        endList = temp;
        return;
    }
 
    Node<T> *temp = new Node<T>;
    temp->value = t;
    temp->prev = endList;
    temp->next = nullptr;
    endList->next = temp;
    endList = temp;
}
 
template<class T>
bool List<T>::delItemByValue(T value)
{
    Node<T>*temp = beginList;
    while (temp) {
        if (temp->value == value)
        {
            if (temp == beginList)
            {
                beginList = beginList->next;
                beginList->prev = nullptr;
                delete temp;
                return true;
            }
            else if (temp == endList)
            {
                endList = endList->prev;
                endList->next = nullptr;
                delete temp;
                return true;
            }
            else
            {
                temp->prev->next = temp->next;
                temp->next->prev = temp->prev;
                delete temp;
                return true;
            }
        }
        temp = temp->next;
    }
    delete temp;
    return false;
}
 
template<class T>
void List<T>::showList()
{
    Node<T>*temp = beginList;
    while (temp) {
        cout << temp->value << endl;
        temp = temp->next;
    }
    delete temp;
}
 
template<class T>
void List<T>::showReverseList()
{
    Node<T>*temp = endList;
    while (temp) {
        cout << temp->value << endl;
        temp = temp->prev;;
    }
    delete temp;
}
0
11.11.2016, 22:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2016, 22:10
Помогаю со студенческими работами здесь

Создать базовый класс «Список» и класс-потомок «Упорядоченный список»
Создать базовый класс «список», определив в нем функции добавления в начало списка, удаления N-го...

Создать класс СПИСОК целых чисел. Разработать класс СТЕК
&quot;Создать класс СПИСОК целых чисел. Разработать класс СТЕК, который вмещает объект класса СПИСОК....

Создать базовый класс список. Реализовать на базе списка стек и очередь с виртуальными функциями вставки и вытаскивания
Здравствуйте, помогите пожалуйста разобраться что как работает в программе (напишите комментарии). ...

Создать динамический класс Route на основе двозвьязного списка, где каждый элемент типа stop (стоп)
Создать динамический класс Route на основе двозвьязного списка, где каждый элемент типа stop...

Считалочка с использованием списка(класс List<>)
9.«Считалка». N ребят стоят по кругу. Начав отсчет от первого, удаляют каждого К-го, смыкая круг...

Класс: Описать класс Points, затем производный от него Circle
Задание: Описать класс Points, затем производный от него Circle. Создать динамический массив...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru