|
0 / 0 / 1
Регистрация: 20.07.2016
Сообщений: 108
|
|
Двунаправленный (двусвязанный) список12.11.2016, 23:14. Показов 4452. Ответов 9
Метки нет (Все метки)
Приветы!
В общем, нужна программа, которая: Из -двунаправленного списка -ищет вещественное число и выполняет следующие действия: Находит вещественное число по числу, введенному с клавиатуры,и после него добавить новое число. Я так и не понял, как работают списки. Нет, суть я понял, в теории я понимаю что они такое и для чего нужны, но когда время приходит к делу, то не могу понять, как его хотя бы создавать. В общем, нужна помощь.
0
|
|
| 12.11.2016, 23:14 | |
|
Ответы с готовыми решениями:
9
Двунаправленный список Как объединить 2 очереди в 1 двунаправленный список? Двунаправленный список - ошибка где-то в коде |
|
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
|
||||||||||||||||||||||||||
| 13.11.2016, 04:34 | ||||||||||||||||||||||||||
|
Boogie Woogie, если ты понимаешь как устроены списки, давай попробуем разобраться что же тебе непонятно в реализации. Для хранения в памяти двунаправленного списка используется следующая структура:
Кликните здесь для просмотра всего текста
1
|
||||||||||||||||||||||||||
|
0 / 0 / 1
Регистрация: 20.07.2016
Сообщений: 108
|
||||||
| 13.11.2016, 21:24 [ТС] | ||||||
|
Mathist,
Привет! Спасибо за попытку объяснить. В общем, я немного понял как создаются списки и у меня кажется получилось сделать алгоритм, который выполняет мою программу, но я не знаю, как сделать так, чтобы оно скомпилировалась в полноценном коде. Сам алгоритм:
вставляет число q после w в списке.
0
|
||||||
|
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
|
||||||
| 13.11.2016, 22:09 | ||||||
|
Boogie Woogie, На сколько я понял (не вижу описание структуры lst_List) элемент last указывает на последний элемент в списке. В случае если вставляем не после последнего элемента ( ... else { ...), то делаем присваивание q->next = w->next (это у вас есть), также надо у следующего элемента настроить связь предыдущий элемент, т.е.:
0
|
||||||
|
0 / 0 / 1
Регистрация: 20.07.2016
Сообщений: 108
|
||||||
| 22.11.2016, 14:31 [ТС] | ||||||
|
Mathist,
Привет! Была небольшая пауза В общем, с помощью различных шаблонов, справочников, создал что-то похожее на код, но, правда, не совсем понимаю как это запустить
0
|
||||||
|
0 / 0 / 1
Регистрация: 20.07.2016
Сообщений: 108
|
|
| 03.12.2016, 01:16 [ТС] | |
|
Mathist,
Вот #include "stdafx.h" #include <iostream> using namespace std; struct tlist { tlist *next; tlist *prev; double value; }; void create(tlist *el) { int size = 0; el->prev = NULL; tlist *temp = new tlist; tlist *temp2 = new tlist; cout « "Enter size of list:"; cin » size; cout « "\nEnter 0 element:"; cin » el->value; el->next = temp; temp->prev = el; for (int i = 1; i < size; i++) { cout « "\nEnter " « i « " element:"; cin » temp->value; temp2 = new tlist; temp->next = temp2; temp2->prev = temp; temp = temp2; temp->next = NULL; } } void print(tlist *el) { tlist* temp = el; while (temp->next != NULL) { cout « temp->value « " "; temp = temp->next; } cout « endl; } void add(tlist *el, double a) { if (el->next == NULL) //last { tlist *temp = new tlist; el->next = temp; temp->prev = el; temp->value = a; } else { tlist *inserted = new tlist; inserted->value = a; tlist *temp = el->next; el->next = inserted; inserted->prev = el; inserted->next = temp; temp->prev = inserted; } } void find(tlist *el, double num, double adding) { tlist *temp = el; while (temp->next != NULL) { if (temp->value == num) add(temp, adding); temp = temp->next; } } int main() { tlist *a = new tlist; create(a); find(a, 2.0, 5.0); //1 число - то, что ищем, 2 - что вставляем, можно вставить рандомные переменные cout « "ascending order\n"; print(a); while(a->next->next != NULL) { a = a->next; } cout « "descending order\n"; while (a != NULL) { cout « a->value « " "; a = a->prev; } system("pause"); return 0; } Единственное непонятно, как сделать тоже самое, только чтобы цифры, которые мы меняем, могли вводить вручную
0
|
|
|
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
|
|||||||||||
| 03.12.2016, 18:01 | |||||||||||
|
Boogie Woogie, Приведенный вами код написан на с++. Не совсем понял о каких цифрах идет речь, но если нужно вводить число для поиска и число, которое будет вставлено, то вместо:
0
|
|||||||||||
|
0 / 0 / 1
Регистрация: 20.07.2016
Сообщений: 108
|
|
| 04.12.2016, 00:58 [ТС] | |
|
Mathist,
Да, на С++ мне было проще реализовать это все. А вот Ваш кусочек кода не работает. Программа компилируется, но ввод поиска/вставки осуществить нельзя
0
|
|
|
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
|
|||||||||||
| 04.12.2016, 16:54 | |||||||||||
|
Boogie Woogie, почему нельзя? кто мешает?)
Функция мэйн:
1
|
|||||||||||
|
0 / 0 / 1
Регистрация: 20.07.2016
Сообщений: 108
|
|
| 04.12.2016, 21:49 [ТС] | |
|
Mathist, Да, блин, я понял.
Этот Visual Studio какой-то ад. Спасибо, все работает!
0
|
|
| 04.12.2016, 21:49 | |
|
Помогаю со студенческими работами здесь
10
Двунаправленный список - реализовать работу с данными о ПК Двунаправленный список - чтение данных с файла и клавиатуры Двунаправленный список. Удаление элементов с одинаковыми соседями Создать двунаправленный циклический список, заменить элементы модулем
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|