|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
|||||||||||||||||||||
Односвязный, двусвязный список, стек, очередь11.12.2008, 16:14. Показов 53078. Ответов 34
Метки нет (Все метки)
В общем, всем кто нуждается. Баггов вы не найдете.
Односвязный список
36
|
|||||||||||||||||||||
| 11.12.2008, 16:14 | |
|
Ответы с готовыми решениями:
34
Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список» Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список» Заменить массив структур на односвязный список, и на двусвязный список |
|
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 15
|
|
| 28.02.2009, 15:44 | |
|
Спасибо.
Только как это у вас в двусвязном списке получается...head->last указывает на саму себя? тогда у вас вывод справа налево не работает...
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||
| 28.02.2009, 19:21 | ||
|
1. Ни один из приведенных классов Node не поддерживает правильное конструирование и присваивание. 2. На более-менее соответствующем Стандарту компиляторе (например, GCC 4.3, 4.4) ни один из примеров даже не скомпилируется. Далее. Если уж это C++ (судя по #include <iostream>), то имело бы смысл все структуры данных (списки, стек и очередь) оформить в виде классов. Исправь, плз. После исправления - довольно полезные примеры будут.
2
|
||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
| 28.02.2009, 23:25 | ||||||
|
если программе не хватит памяти, будет разыменовывать нулевой указатель
1
|
||||||
|
23 / 23 / 3
Регистрация: 20.02.2009
Сообщений: 59
|
|
| 01.03.2009, 00:34 | |
|
1
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 01.03.2009, 01:59 | |
|
да, может быть
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 01.03.2009, 10:44 | |
|
Это, на самом деле, зависит от реализации new в компиляторе. Должно быть выброшено исключение - но MSVC++, например, не выбросит исключение и вернет NULL. Борланд, по-моему, тоже.
0
|
|
|
23 / 23 / 3
Регистрация: 20.02.2009
Сообщений: 59
|
|
| 01.03.2009, 13:29 | |
|
Интересно, с каких это пор MSVC++ в операторе new не бросает исключение?
Предлагаю посмотреть реализацию в файле new.cpp.
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 01.03.2009, 21:43 | |
|
TurboDune, CheshireCat прав. Это зависит от реализации в конкретном компиляторе. new может работать мовершенно по-разному на различных компиляторах. Например, где-то он реализован через malloc, где еще через что. Поэтому где-то будет исключение, а где-то просто NULL. Я сталкивался и с первым и со вторым случаем.
0
|
|
|
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
|
|
| 01.03.2009, 22:09 | |
|
Короче, любая программа несовершенна...
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|||||||||||
| 02.03.2009, 11:37 | |||||||||||
|
На самом деле, что произойдет при неудачной попытке выделить память - довольно-таки неоднозначная ситуация. Более того, даже на одном и том же компиляторе это зависит от кода!! Я немного поэкспериментировал с доступными мне компиляторами, и вот какие результаты получились:
Тест 1
Добавлено через 32 минуты 40 секунд PS: юзать new(std::nothrow) не предлагать - бо имеется большой объем legacy code... и переписывать его - не вариант.
2
|
|||||||||||
|
23 / 23 / 3
Регистрация: 20.02.2009
Сообщений: 59
|
|
| 02.03.2009, 11:58 | |
|
Спасибо CheshireCat! Вот это действительно полезные сведения.
![]() Добавлено через 15 минут 20 секунд Хотя так и не понял чем принципиально отличается Тест1 от Теста2, что так значительно влияет на результаты.
1
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 02.03.2009, 12:48 | |
|
Различие между тестами в том, что Тест1 использует заголовки и код в стиле C++, а Тест2 - old-style заголовки и код в стиле C. Вот цитата из MSDN (июль 2003):
(естественно, касается только компиляторов MS Visual C++) Beginning in Visual C++ .NET 2002, the CRT's new function (in libc.lib, libcd.lib, libcmt.lib, libcmtd.lib, msvcrt.lib, and msvcrtd.lib) will continue to return NULL if memory allocation fails. However, the new function in the Standard C++ Library (in libcp.lib, libcpd.lib, libcpmt.lib, libcpmtd.lib, msvcprt.lib, and msvcprtd.lib) will support the behavior specified in the C++ standard, which is to throw a std::bad_alloc exception if the memory allocation fails. Normally, if you #include one of the C++ standard headers, like <new>, you'll get a /defaultlib directive in your object that will reference the appropriate C++ Standard Library according to the CRT model you used (the /M* compiler options). Generally, that will cause the linker to use the throwing operator new from the C++ Standard Library instead of the nonthrowing one from the main CRT, because the order of defaultlib directives will cause libcp.lib to be searched before libc.lib (under /ML).
0
|
|
|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
|
| 29.03.2009, 17:55 [ТС] | |
|
Это для студентов. Не будьте строги
0
|
|
|
real199007
|
|
| 02.05.2009, 13:11 | |
|
СЛУШАЙ Vasiliusis А ТЫ МОЖЕШЬ В ОДНОСВЯЗАННОМ СПИСКЕ СОРТИРОВКУ ПО ВОЗРАСТАНИЮ ИЛИ УБЫВАНИЮ СДЕЛАТЬ
Добавлено через 6 минут 21 секунду Vasiliusis, А ТЫ МОЖЕШЬ В ОДНОСВЯЗАННОМ СПИСКЕ СОРТИРОВКУ ПО ВОЗРАСТАНИЮ ИЛИ УБЫВАНИЮ СДЕЛАТЬ |
|
|
dpi
|
|||||||
| 02.05.2009, 14:20 | |||||||
|
|||||||
|
real199007
|
|
| 02.05.2009, 19:26 | |
|
dpi,
слушай я в С++ не бум бум вот в верху есть Односвязный список построенный Vasiliusis ты можешь туда запихнуть сортировку dpi, вот в верху есть Односвязный список построенный Vasiliusis ты можешь туда запихнуть сортировку |
|
|
1 / 1 / 1
Регистрация: 09.02.2009
Сообщений: 31
|
|
| 20.05.2009, 20:55 | |
|
а кто нибудь знает как насследованием из класса стек сделать дек
0
|
|
|
8 / 8 / 1
Регистрация: 15.03.2009
Сообщений: 267
|
|
| 14.10.2009, 19:41 | |
|
а как "очередь" будет "звучать"(написано) на СИ, а не Си++?
А то в Си я не очень силен. Если, кто может, то переделйте)
0
|
|
|
apis1
|
||
| 22.12.2009, 14:42 | ||
|
очередь пошла на DEVCPP как дети в школу только int main потребовала а зачем здесь windows.h? |
||
| 22.12.2009, 14:42 | |
|
Помогаю со студенческими работами здесь
20
Двусвязный в односвязный список Преобразовать односвязный список в двусвязный
Преобразовать односвязный список в двусвязный список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|