Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 7
1

Односвязный список на шаблонах

30.05.2019, 09:53. Показов 452. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, сроки горят, нужно реализовать односвязный список на шаблонах, чтоб работал main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
#include "MyList.h"
 
using namespace std;
 
int main()
{
    MyList<int> list;
 
    int i;
    while (cin >> i)
        list.add(i);
 
    for (auto &i : list)
        cout << i;
 
    cout << endl;
}

Я смог сделать только обычный односвязный список

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
#include <iostream>
#include <cstdlib>
#include <iostrean>
 
class Node
{
public:
    Node* next;
    int data;
};
 
using namespace std;
 
class LinkedList
{
public:
    int length;
    Node* head;
    
    LinkedList();
    ~LinkedList();
    void add(int data);
    void print();
};
 
LinkedList::LinkedList(){
    this->length = 0;
    this->head = NULL;
}
 
LinkedList::~LinkedList(){
    std::cout << "LIST DELETED";
}
 
void LinkedList::add(int data){
    Node* node = new Node();
    node->data = data;
    node->next = this->head;
    this->head = node;
    this->length++;
}
 
void LinkedList::print(){
    Node* head = this->head;
    int i = 1;
    while(head){
        std::cout << i << ": " << head->data << std::endl;
        head = head->next;
        i++;
    }
}
 
int main(int argc, char const *argv[])
{
    LinkedList* list = new LinkedList();
    for (int i = 0; i < 100; ++i)
    {
        list->add(rand() % 100);
    }
    list->print();
    std::cout << "List Length: " << list->length << std::endl;
    delete list;
    return 0;
}



Сроки горят помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.05.2019, 09:53
Ответы с готовыми решениями:

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список
друзья спасайте Сформировать список из 10 книг, используя динамическую структуру данных...

Создать класс «Квартира», в котором список комнат реализовать как односвязный список
Добрый день,написал фот такой клас по заданию:Создать класс «Квартира», в котором список комнат...

Односвязный список: заносить в новый список элементы исходного, которые больше заданного значения
Можете пожалуйста помочь в решении проблемы не. Не могу создать функцию которая будет с созданного...

Составить односвязный список на основе класса, объекты которого будут формировать этот список
Составить односвязный список на основе класса, объекты которого будут формировать этот список. В...

4
 Аватар для 7533620
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 241
30.05.2019, 10:45 2
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
template<typename Tp>
class list
{
private:
    struct node
    {
        node* next;
        Tp data;
    };
 
public:
    class iterator
    {
        friend class list;
 
    private:
        node* nd_;
 
    public:
        Tp* base() const noexcept
        {
            return &nd_->data;
        }
 
        Tp* operator->() const noexcept
        {
            return &nd_->data;
        }
 
        Tp& operator*() const noexcept
        {
            return nd_->data;
        }
 
        iterator& operator++() noexcept
        {
            nd_ = nd_->next;
            return *this;
        }
 
        iterator& operator++(int) noexcept
        {
            nd_ = nd_->next;
            return *this;
        }
 
        bool operator==(iterator i) const noexcept
        {
            return i.nd_ == nd_;
        }
 
        bool operator!=(iterator i) const noexcept
        {
            return i.nd_ != nd_;
        }
 
    private:
        iterator(node* nd) : nd_(nd) { }
    };
 
private:
    node* first_ = nullptr;
    node* last_ = nullptr;
    size_t size_ = 0;
 
public:
    list() = default;
 
    template<typename T>
    list(std::initializer_list<T> l)
    {
        for (auto e : l)
            push_back(e);
    }
 
    template<typename U>
    void push_back(U&& value)
    {
        auto new_node = new node{nullptr, std::forward<U>(value)};
        if (last_)
            last_->next = new_node;
        else
            first_ = new_node;
        last_ = new_node;
        ++size_;
    }
 
    void erase_after(iterator i)
    {
        auto new_next = i.nd_->next->next;
        delete i.nd_->next;
        i.nd_->next = new_next;
        --size_;
    }
 
    iterator begin()
    {
        return first_;
    }
 
    iterator end()
    {
        return nullptr;
    }
 
    auto size() const noexcept
    {
        return size_;
    }
};
 
template<typename T>
list(std::initializer_list<T>) -> list<T>;
 
int main()
{
    list l{1, 2, 3, 4, 5};
 
    for (auto e : l)
        std::cout << e << std::endl;
 
    auto two_itr = l.begin()++;
    l.erase_after(two_itr);
 
    for (auto e : l)
        std::cout << e << std::endl;
 
    l.push_back(6);
    for (auto e : l)
        std::cout << e << std::endl;
 
    return 0;
}
Дальше думаю сам разберешься если сильно надо
0
 Аватар для Kuzia domovenok
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,521
Записей в блоге: 1
30.05.2019, 12:47 3
elseecay, то есть ты в коде автора разбираться не захотел, кинул какой-то свой ни с того ни с сего, а он в твоём должен????
0
 Аватар для 7533620
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 241
30.05.2019, 13:04 4
Ну типа да он помощи попросил я показал как можно сделать, че быкуешь?
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
30.05.2019, 14:05 5
Цитата Сообщение от Axbanet Посмотреть сообщение
Я смог сделать только обычный односвязный список
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
template <typename T>
class Node
{
public:
    Node* next;
    T data;
};
 
using namespace std;
 
template <typename T> 
class LinkedList
{
public:
    int length;
    Node<T>* head;
    
    LinkedList();
    ~LinkedList();
    void add(const T &data);
    void print();
};
 
template <typename T>
LinkedList<T>::LinkedList(){
    this->length = 0;
    this->head = NULL;
}
 
template <typename T> 
LinkedList<T>::~LinkedList(){
    std::cout << "LIST DELETED";
}
template <typename T>
void LinkedList<T>::add(const T &data){
    Node* node = new Node();
    node->data = data;
    node->next = this->head;
    this->head = node;
    this->length++;
}
..................................
0
30.05.2019, 14:05
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2019, 14:05
Помогаю со студенческими работами здесь

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на двусвязный список ...

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный...

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru