Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
vfhbf
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 318
Завершенные тесты: 1
1

Как реализовать ссылку на значение узла в списке

30.07.2018, 13:49. Просмотров 748. Ответов 4
Метки нет (Все метки)

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
template <typename T>
class List
{
private:
    struct Node
    {
        Node *ptr;
        T data;
        Node(T data)
        {
            this->data = data;
        }
        Node(T data, Node* ptr)
        {
            this->data = data;
            this->ptr = ptr;
        }
    };
    Node *first;
    size_t count;
 
public:
    List()
    {
        first = nullptr;
        count = 0;
    }
    void push_back(T data);
    void print();
    int size();
    void push_front(T data);
    void pop_front();
    void pop_back();
    void clear();
    void insert(size_t index, T data);
    void delete_ind(size_t index);
    T at(T i);
};
    int main()
    {
    List<float> list;
    list.push_back(23.43);
    list.push_back(3.14);
    list.push_front(6.78);
    /*list.clear();*/
    list.pop_front();
    /*list.pop_back();*/
    list.at(1);
    try{
        list.insert(1, 67.7);
        list.delete_ind(3);
    }
    catch (const char* ex)
    {
        cout << ex;
    }
    list.print();
 
    cout << list.size() << endl;
    system("pause");
}
 
    T List<T>::at(T i)  реализовать ссылку на data
    {
        Node * sled = first; 
        for (size_t j = 0; j < i - 1; j++)
        {
            sled = sled->ptr;
        }
        sled->ptr;
        /*Node &res = *sled;
        return res;*/
        return *sled;
    }
Подскажите кто знает!
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2018, 13:49
Ответы с готовыми решениями:

Реализовать программно функцию, которая меняет местами два указанных узла в линейном двусвязном списке
Дан двусвязный список#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;malloc.h&gt; #include...

Как получить значение одного узла по значению другого узла?
Всем благополучия. Помогите разобраться с вроде несложной ситуацией, плз. Есть простенький XML...

Удаление узла в списке
Здравствуйте! Совершенно запутался в списках. С массивами &quot;дружу&quot; , как бы список на массив похож,...

Удаление узла в линейном списке
У меня есть структура (файловая система) , я могу помещать туда файлы (здесь все работает)....

4
zss
Модератор
Эксперт С++
9240 / 7984 / 4902
Регистрация: 18.12.2011
Сообщений: 21,285
Завершенные тесты: 1
30.07.2018, 18:09 2
Лучший ответ Сообщение было отмечено vfhbf как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
template<class T>
T& List<T>::at(T i) // реализовать ссылку на data
{
        Node * sled = first; 
        for (size_t j = 0; j < i  && sled!=nullptr; j++)
        {
            sled = sled->ptr;
        }
        if(sled!=nullptr)
           return sled->data;
       return first->data; // возвратим начальный элемент, если нет i-го
}
0
vfhbf
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 318
Завершенные тесты: 1
30.07.2018, 18:49  [ТС] 3
zss, Большое человеческое спасибо)
1
Mournful Max
Велосипедист...
349 / 216 / 73
Регистрация: 15.12.2015
Сообщений: 785
Завершенные тесты: 1
30.07.2018, 20:58 4
И почему-то мне кажется, что метод at() должен иметь другой список параметров… T логично было бы заменить на std::size_t
vfhbf, zss
1
vfhbf
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 318
Завершенные тесты: 1
30.07.2018, 21:40  [ТС] 5
Captain Maxee, Согласна)
0
30.07.2018, 21:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2018, 21:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление узла в двухсвязном списке
Привет всем! такая проблема , не получается корректно удалить узел из двухвязного списка. как...

Не получается изменить значения узла в списке
Если вызвать процедуру, она спрашивает что изменить и просит ввести новые данные, после ввода новых...

Добавление узла перед заданным в односвязном списке
Вот такой код я нашел, но он похоже с ошибками, нету * как минимум. проставил их но тоже не помогло...

Как сделать активным пункт меню в выпадающем списке при клике на ссылку в теле странице?
Добрый день, Уважаемые форумчане! Перерыл весь интернет, но ответа на свой вопрос не нашел....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.