4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
||||||
1 | ||||||
Реализовать указанные функции-члены для пользовательского класса "Кольцевой двусвязный список"15.10.2016, 02:07. Показов 1234. Ответов 29
Метки нет Все метки)
(
Сообственно сабж.
У списка два закрытых поля: tail-это узел следующий за "последним"(условно,ибо список -кольцо. в tail-е лежит мусор) tail->prev-это начало списка tail->next -его конец и sz-это размер списка. если список пустой-то там есть только tail и sz=0 Нужно реализовать несколько функций. Я определила их,но все равно есть сомнения в работоспособности некоторых,хотя может быть я плохо тестю. Посмотрите пож-та и укажите,если что не так.
0
|
|
15.10.2016, 02:07 | |
Ответы с готовыми решениями:
29
На основе заданных прототипов реализовать функции-члены для пользовательского класса "Односвязный список" Написать конструктор для пользовательского класса "Двусвязный список"
Реализовать пользовательский класс "Список" и функции-члены для создания, просмотра и удаления списка |
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
|
15.10.2016, 02:19 [ТС] | 2 |
вот схематично нарисовано,на данном примере sz=3
0
|
252 / 158 / 118
Регистрация: 26.11.2012
Сообщений: 384
|
|
15.10.2016, 15:08 | 6 |
Вся проблема в том, что посмотрев на ваш код написанный в строчку все желание его смотреть пропадает.
Вам удобно его читать? И почему бы всю программу не написать одной строкой?
0
|
Любитель чаепитий
|
||||||
15.10.2016, 15:21 | 7 | |||||
Вот почему:
1
|
252 / 158 / 118
Регистрация: 26.11.2012
Сообщений: 384
|
||||||
16.10.2016, 02:03 | 8 | |||||
вот пример
Кликните здесь для просмотра всего текста
Добавлено через 2 минуты Не по теме: GbaLog-, я имел в виду без деректив.
0
|
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
|
||||||
16.10.2016, 10:17 | 9 | |||||
Kristina_S, когда-то писал шаблонный класс подобный тому, что реализован в библиотеке STL. Всё, что действительно необходимо здесь есть, остальное можете добавить сами:
0
|
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
||||||
16.10.2016, 16:00 [ТС] | 10 | |||||
я совсем не понимаю эти чертовы итераторы.
можете пожалуйста пофиксить например эту функцию она вставляет элемент после данного итератора.
0
|
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
|
|
16.10.2016, 16:16 | 11 |
Kristina_S, для понимания итераторов лучше почитать литературу.
Если постараться объяснить на пальцах, то итератор это некая оболочка для указателя. Если мы имеем указатель на элемент списка, то чтобы перейти к следующему мы пишем: "указатель_на_текущий_элемент"->next. Гораздо удобнее эту инструкцию представить в виде ++"итератор"(итератор - это объект класса, он знает "указатель_на_текущий_элемент", и поэтому может выполнить "указатель_на_текущий_элемент"->next, а после вернуть вновь созданный итератор соответствующий след. элементу). Я старался объяснить, чтобы была понятна суть. ![]()
0
|
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
|
16.10.2016, 16:18 [ТС] | 12 |
ну это то я понимаю)
код,что выше почему-то не работает,хотя сделано все верно вроде,но выходит ошибка. я даже на листочке пошагово программу написала,но не работает.
0
|
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
|
|
16.10.2016, 16:27 | 13 |
Kristina_S, в строке 3 (если я правильно понимаю, то Double_node* - указатель на элемент списка) указателю на элемент списка присваиваете итератор. Это разные типы. Вместо итератора it нужно присваивать указатель в нем содержащийся(получить его можно it.position)
P.S.: Может у Вас это будет не position.
0
|
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
|
16.10.2016, 16:32 [ТС] | 14 |
Готово.
Но теперь компилятор ругается на строку №5 мол указатель был 0xCDCDCDCD Причем это какая-то принципиальная ошибка у меня во многих функциях в этом классе такая ошибка выходит что можно сделать с этим?(
0
|
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
|
|
16.10.2016, 16:36 | 15 |
Kristina_S, дайте весь код который Вы компилируете.
0
|
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
|||||||||||
16.10.2016, 16:41 [ТС] | 16 | ||||||||||
Вот.мне кажется тут не много ошибок,но они повторяются почти во всех функциях
посмотрите пож-та ,а то второй день ломаю голову уже
0
|
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
|
|
16.10.2016, 16:53 | 17 |
Kristina_S, общие замечания:
1. Шаблонные функции, классы рекомендовано реализовывать в .hpp файлах(тогда и методы шаблонного класса спокойно реализуются, без создания для каждого шаблонной функции) 2. Обратите внимание на класс элемента списка в моем примере. Конструкторы и деструкторы сами настраивают связи, это очень сильно упрощает написание программы.
0
|
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
|
16.10.2016, 17:14 [ТС] | 18 |
1) нам препод сказал опредение функций в .h файл поместить после класса
может как-то нерпавильно просить вас это,но можете реализовать одну функцию add_rear(T); чтобы я сам принцип поняла
0
|
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
|
||||||
16.10.2016, 17:54 | 19 | |||||
Kristina_S, в целом у вас эта функция должна выглядеть так:
1
|
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204
|
|||||||||||
16.10.2016, 18:28 [ТС] | 20 | ||||||||||
Ага,получается все функции почти можно так реализовать через итераторы
а сама функция вставки должна выглядить так?
------ Ага,получается все функции почти можно так реализовать через итераторы а сама функция вставки должна выглядить так? вставляет узел со значением "x" типа "T" после узлы на который указывает итератор it по вашему прототипу сделал
0
|
16.10.2016, 18:28 | |
Помогаю со студенческими работами здесь
20
Реализовать удаление элемента из пользовательского класса "Двунаправленный список" Иерархия классов "Структура - Список - Кольцевой Двусвязный список"
Реализовать класс "Книжный магазин", используя двусвязный список (ошибка с покупкой книги) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |