|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
|||||||||||||||||||||
Односвязный, двусвязный список, стек, очередь11.12.2008, 16:14. Показов 52973. Ответов 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 / 3288 / 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 / 3288 / 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
Двусвязный в односвязный список Преобразовать односвязный список в двусвязный
Преобразовать односвязный список в двусвязный список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|