|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
|||||||||||||||||||||
Односвязный, двусвязный список, стек, очередь11.12.2008, 16:14. Показов 52908. Ответов 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
Двусвязный в односвязный список Преобразовать односвязный список в двусвязный
Преобразовать односвязный список в двусвязный список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|