|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.03.2021, 21:01 | #1 |
Пользователь
Регистрация: 17.11.2020
Сообщений: 15
|
Сортировка односвязного списка
Необходимо упорядочить список: в начало положительные, затем 0, в конец отрицательные.
Код:
|
20.03.2021, 06:01 | #2 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
Цитата:
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|||
20.03.2021, 10:55 | #3 |
Пользователь
Регистрация: 17.11.2020
Сообщений: 15
|
evg_m, для положительных требуется порядок, в котором они даны. Например, при записи в список последовательности 1, 3, -4, 0, -5, 7 в списке должна быть последовательность 1, 3, 7, 0, -4, -5
|
20.03.2021, 18:18 | #4 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,304
|
Какое то дежавю.
Уже по этой тепе написал, но куда делся мой ответ? По существу: У вас добавление положительных чисел делается в голову списка. Т.е. 1, 3, -4, 0, -5, 7 станет: 7, 3, 1, 0, -4, -5. Необходимо выполнять добавление в хвост группы. Это можно сделать как через один список с поиском хвоста группы, либо, что я бы предпочёл, создать три списка, распределить по ним числа, а затем, объединить списки в один. Очень советую посмотреть книжку: Т.А. Павловская, Программирование на ЯВУ, Паскаль. Она есть в списке литературы этого раздела. Там описана работа с односвязным списком и приведён хороший пример.
Как-то так, ...
|
20.03.2021, 18:44 | #5 |
Пользователь
Регистрация: 17.11.2020
Сообщений: 15
|
ViktorR, просмотрел книгу, которую Вы посоветовали, но так и не понял, как реализовать поиск хвоста группы.
|
21.03.2021, 09:20 | #6 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
надо найти где заканчивается группа положительных.
а заканчивается она там где их больше нет (т.е. следующее число <=0) у вас уже реализовано Цитата:
и вставить после предыдущего к этому. P.S. или же НАЙТИ последний ИЗ ... (>0)
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 21.03.2021 в 09:24. |
|
21.03.2021, 17:27 | #7 |
Пользователь
Регистрация: 17.11.2020
Сообщений: 15
|
evg_m, я уже все возможные варианты перепробовал, не получается найти конец группы положительных чисел. Не могли бы Вы написать код?
|
21.03.2021, 17:56 | #8 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
Код:
ну и конечно случаи когда 1. список (длина списка) <=1 2. сразу первый <=0 3. ??? (не знаю что еще)
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 21.03.2021 в 17:59. |
21.03.2021, 18:11 | #9 |
Пользователь
Регистрация: 17.11.2020
Сообщений: 15
|
evg_m, так у меня вроде так и написано
Код:
|
21.03.2021, 19:01 | #10 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
if r < 0 then AddLast(ListN, ListK, r) // добавить в конец
else begin // найти после какого ListC:=ListN; // с начала списка while (ListC^.next <> nil) and (ListC^.next^.info > 0) do Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сортировка односвязного списка | Levenyatko | Общие вопросы C/C++ | 0 | 05.07.2012 22:12 |
Сортировка линейного односвязного списка | Klik_1602 | Помощь студентам | 4 | 02.03.2011 19:45 |
Сортировка односвязного списка (C++) | biograf | Помощь студентам | 0 | 14.12.2010 21:21 |
Сортировка односвязного списка | amerhant | Общие вопросы C/C++ | 1 | 13.05.2010 20:25 |
Сортировка односвязного списка | btf | Общие вопросы C/C++ | 0 | 15.02.2010 14:40 |