Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заменить в числе каждое вхождение одной цифры на другую Дано число n, а также цифры a и b. Заменить в этом числе каждое вхождение цифры a на цифру b. Входные данные 123118 1 5 Выходные данные 523558 https://www.cyberforum.ru/ cpp-beginners/ thread1848010.html C++ Защита от неправильного ввода
Приветствую, делаю контрольную работу по программированию, основное задание сделал, но вот решил добавить защиту от неправильного ввода, но почему-то она не правильно работает, помогите пожалуйста...
C++ Вывести на экран список в прямом и обратном порядке Вывести на экран список в прямом и обратном порядке.с помощью двусвязного списка пожалуйста)))) помогите https://www.cyberforum.ru/ cpp-beginners/ thread1847992.html C++ Вывести таблицу значений функции https://www.cyberforum.ru/ cpp-beginners/ thread1847979.html
Вычислить и вывести на экран в виде таблицы значение функции y(x) на интервале от x0 до xn с шагом dx. A, B, C, D, X, x0, xn и dx - вещественные числа, значения которых вводятся с клавиатуры. Для...
Функция с непостоянным числом параметров C++
Здравствуйте. Мне очень понадобилась ваша помощь. Разбираюсь с функциями непостоянным числом параметров. В интернете об этом много инфы, но везде там первым параметром идет строчка, указывающая на...
C++ Определить минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы Задание: определить минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы((( ооой, вообще не понимаю как сделать.. туплю вечно.. помогите люди добрые(( https://www.cyberforum.ru/ cpp-beginners/ thread1847972.html
C++ Составить квадратную матрицу, элементами которой являются кубы чисел от 1 до 25 Задание: составить квадратную матрицу элементами которой являются кубы чисел от 1-25. У меня выходит 1 1 1 1 1 8 8 8 8 8 27 27 27 27 27 ................... 15625 15625 15625 15625 15625 ... https://www.cyberforum.ru/ cpp-beginners/ thread1847970.html Реализовать класс матрицы в ООП(есть код, но выдает ошибку) C++
В задании нужно постpоить класс для pаботы с квадратными матрицами. Класс должен включать соответствующие поля: порядок, набор коэффициентов. Класс должен обеспечивать пpостейшие функции для pаботы с...
C++ При выводе char* в конце строки "tr" struct List { char* inf; List* next; }; void AddToHead(List* &head, char* inf) { List* p = new List; p->inf = inf; p->next = head; https://www.cyberforum.ru/ cpp-beginners/ thread1847966.html C++ Изменение порядка появления символов в консоли Помогите сделать так, что бы в консоли символы выводились в порядке показанном на картинке. https://www.cyberforum.ru/ cpp-beginners/ thread1847958.html
C++ Можно ли так объявить массив структур? - C++
Почему я не могу объявить так? Компилятор выдаёт ошибку. #include <iostream> using namespace std; struct player{ char surname; char club; char position; int goal; int pass; float...
C++ Передача по ссылке в класс https://www.cyberforum.ru/ cpp-beginners/ thread1847929.html
Всем привет. Есть класс Stack, он передается в dll библиотеку typedef void(*FNPTR)(class Stack); Stack textlines; fmod3(textlines); //вызов библиотеки как сделать, чтобы он передавался...
56 / 56 / 45
Регистрация: 24.03.2016
Сообщений: 378
11.11.2016, 22:10 0

Создать класс Элемент списка (Node), а затем класс Список (List) - C++ - Ответ 9756325

11.11.2016, 22:10. Показов 14342. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено 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;
}


Вернуться к обсуждению:
Создать класс Элемент списка (Node), а затем класс Список (List) C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2016, 22:10
Готовые ответы и решения:

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

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

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

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

1
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. Создать динамический массив...

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