В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||
Списки, стеки, очереди19.10.2010, 12:11. Показов 77529. Ответов 53
Метки нет (Все метки)
В процессе разбора этой темы появились программки на список. Сделанные через класс, не идеал конечно, но вроде бы и не самый плохой вариант. Выложу, вдруг кому пригодится. Конструктивная критика приветствуется.
Двунаправленный список и очередь будет чуть позже. С двунаправленным возникли некоторые трудности. Однонаправленный список
Стек
Добавлено через 48 минут Очередь
13
|
19.10.2010, 12:11 | |
Ответы с готовыми решениями:
53
Списки. Стеки. Очереди Задача на тему Стеки, очереди, деки, списки, кольца Списки, Стеки,Очереди (На сколько кусков распадется оставшаяся часть листа? ) Очереди и стеки |
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
19.10.2010, 12:20 | 2 | |||||
Сообщение было отмечено как решение
Решение
Lavroff, первое, что увидел:
5
|
72 / 71 / 8
Регистрация: 04.08.2010
Сообщений: 434
|
||||||
19.10.2010, 12:21 | 3 | |||||
Двунаправленный список с перегрузкой копирования(честно лень вырезать было).
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
19.10.2010, 12:43 [ТС] | 4 | |||||
easybudda, М... А вроде все корректно чистится... Я так понимаю, нужен деструктор в Node?
Добавлено через 14 минут Деструктор как я понял должен выглядить примерно так?
0
|
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
|
|||||||||||
19.10.2010, 12:46 | 5 | ||||||||||
Двусвязный список:
Может у кого есть код для бинарного дерева?
3
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
19.10.2010, 13:02 | 6 | |||||
я бы так сделал
3
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||||||||||||||||||||||
19.10.2010, 13:11 [ТС] | 7 | ||||||||||||||||||||||||||||||
Сообщение было отмечено как решение
Решение
Исправленное.
Список
Стек
Очередь
11
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
||||||
19.10.2010, 13:21 | 8 | |||||
Хотел бы не много добавить, так как очевидную ошибку уже исправили.
Мое мнение таково, я не кому его не навязываю, надо придерживаться идиомы не платить за то что не используешь. Поэтому проверки всякого рода надо делать в debug версии программы.
2
|
72 / 71 / 8
Регистрация: 04.08.2010
Сообщений: 434
|
|
19.10.2010, 13:31 | 9 |
0
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
19.10.2010, 14:16 | 10 |
LineStown
Это значит что проверка будет компилироваться в DEBUG версии программы. В RELEASE версии это участок кода компилироваться не будет. _DEBUG - это макрос есть в Microsoft Visual Studio, Не знаю, есть ли в других средах разработки этот макрос, но наверняка, что нибудь подобное есть.
1
|
19.10.2010, 14:32 | 11 |
Классы привязаны к консольному выводу. Воспользоваться ними например в Win32/MFC программе будет затруднительно. Как я узнаю результат метода Find, если у меня нет консоли ?
Как мне воспользоваться очередью, что бы не мусорить в выводе ? Должен ли пользователь видеть все сообщения, связанные с внутренней работой программы ? Что, если я пользуюсь CString. Или String в Samsung Bada ? Как мне конвертнуть из одного в другое ? А если я хочу логгировать все исключения, как запишеться \n в линуховой системе ? Что должен делать метод erase(), изходя только из прототипа функции ?
1
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
19.10.2010, 15:26 | 12 |
Andrew_Lvov:
Вывод на экран согласен не работает, но операции с файлами, можно делать даже в MFC и в Win32. print не трудно переделать в абстрактную архитектуру, передавая в print функциональный объект, который будет делать вывод каким надо. Добавлено через 7 минут Andrew_Lvov И вообще в заголовке темы, я не видел, что бы автор говорил, про универсальность списков. Добавлено через 21 минуту И автор не говорил, что все списки мега, супер.
1
|
19.10.2010, 15:31 | 13 |
И назвать его operator << ?
Какой смысл писать список, к-рый можно использовать в ограниченном числе случаев ? Где здесь я говорил про файловый вывод ?
1
|
72 / 71 / 8
Регистрация: 04.08.2010
Сообщений: 434
|
|
19.10.2010, 15:32 | 14 |
Тому кто только пытается понять списки - это полезно!, тому кто разбирается уже и сам допишет/дорисует что ему надо. Тема +
1
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
19.10.2010, 15:40 | 15 |
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
19.10.2010, 17:34 [ТС] | 16 |
Естественно списки только тестовые. Собственно, про вывод я и не задумывался когда писал. Была задача изучить и понять. Скинул сюда - вдруг кому поможет. Обычно на форуме часто спрашивают как написать список/стек/очередь для пользовательского типа допустим. Эти шаблонные классы вполне для этого подходят.
Andrew_Lvov, Ценю ваше мнение. Но про универсальность я действительно ничего не говорил. Это же не попытка сделать по типу СТЛ. Только для того, чтобы понять и помочь, тем кому это нужно.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
19.10.2010, 18:12 | 17 |
Так никто и не спорит. В отличие от бесконечных "памагите срочна надо" человек пытается сам что-то сделать, это только приветствуется.
Ну это понятно. По сравнению с первыми Вашими постами большой шаг вперёд. Но критика действительно разумная. Классы нужно максимально абстрагировать от всяких там cin/cout. Если нужна работа с потоками определённого типа - лучше функции-друзья определять. Про тонкости этого подхода, если не ошибаюсь, у Дейтлов подробно расписано.
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
19.10.2010, 20:23 [ТС] | 18 |
easybudda, Спасибо. Да. Про ввод-вывод действительно несколько косяк. Но тогда вся система исключений несколько летит. Или стринг впринципе универсален? Про син/каут конечно согласен. Попробую сделать как-нибудь универсально.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
20.10.2010, 09:01 | 19 |
Да ничего никуда не летит! Функция-член класса выбрасывает исключение, а вызывающая программа его ловит и либо на консоль в cerr сообщение выдаёт, или в MessageBox с ругательными флагами вроде MB_ICONERROR... А может и не ловить, а тупо грохнуться, но это плохой стиль...
0
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
|||||||||||||||||||||
26.05.2011, 19:32 | 20 | ||||||||||||||||||||
Сообщение было отмечено как решение
РешениеНе по теме: [UP] Упрощенные до минимума шаблоны контейнеров с итераторами. Для примера или для "лаб" вполне сгодятся. Длинный двусвязный список с итератором.
Совсем короткий вектор с итератором.
10
|
26.05.2011, 19:32 | |
26.05.2011, 19:32 | |
Помогаю со студенческими работами здесь
20
C++ Стеки, Очереди Стеки и очереди Стеки, очереди, массивы Динамические структуры: стеки и очереди Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |