Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
26 / 26 / 8
Регистрация: 14.05.2011
Сообщений: 242

Слияние двух динамических списков... Готовый модуль для работы со списками внутри

07.12.2011, 19:30. Показов 861. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток помогите написать программу слияния двух списков в один вот модуль для работы со списком
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
unit spisok;
interface
         type BT=longint;
              U=^zveno;
              zveno=record inf:BT; Next:u;
         end;
procedure v_nachalo(var first:u; x:BT);
procedure iz_nachala(var first:u; x:BT);
procedure v_spisok(pred:u; x:BT);
procedure iz_spiska(pred:u; var x:BT);
procedure ochistka(var first:u);
function pust(first:u):boolean;
procedure Print(first:u);
 
implementation
 
procedure v_nachalo;
var vsp:u;
begin
 new(vsp);
 vsp^.inf:=x;
 vsp^.next:=first;
 first:=vsp;
end;
 
procedure iz_nachala;
var vsp:u;
begin
 vsp:=first;
 x:=first^.inf;
 first:=first^.next;
 dispose(vsp);
end;
 
procedure v_spisok;
var vsp:u;
begin
 new(vsp);
 vsp^.inf:=x;
 vsp^.next:=pred^.next;
 pred^.next:=vsp;
end;
 
procedure iz_spiska;
var vsp:u;
begin
 vsp:=pred^.next;
 x:=vsp^.inf;
 pred^.next:=vsp^.next;
 dispose(vsp);
end;
 
procedure ochistka;
var vsp:bt;
begin
 while not pust(first) do
 iz_nachala(first,vsp);
end;
 
function Pust;
begin
 pust:=first=nil;
end;
 
procedure print;
var vsp:u;
begin
 vsp:=first;
 while vsp<>nil do
  begin
   writeln(vsp^.inf);
   vsp:=vsp^.next;
  end;
end;
begin
end.
Добавлено через 1 час 50 минут
вот я сделал следуя этому модулю запись 2-ух списков и вывод их:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
uses Spisok;
 
var Spisok1,Spisok2,PEnd,PEnd2,P:U;
i,n,x:integer;
 
begin
write('Введите размер 1 списка: '); readln(n);
read(x);
Spisok1:=Nil;
V_Nachalo(Spisok1,X);
PEnd:=Spisok1;
for i:=1 to n-1 do
begin
read(x);
V_Spisok(PEnd,x);
PEnd:=PEnd^.Next;
end;
writeln('Исходный список: ');
Print(Spisok1);
writeln;
 
write('Введите размер 2 списка: '); readln(n);
read(x);
Spisok2:=Nil;
V_Nachalo(Spisok2,X);
PEnd2:=Spisok2;
for i:=1 to n-1 do
begin
read(x);
V_Spisok(PEnd2,x);
PEnd2:=PEnd2^.Next;
end;
writeln('Исходный список: ');
Print(Spisok2);
end.
осталось ток слияние сделать

Добавлено через 1 час 22 минуты
все программу доделал снова сам, если кому понадобится вот исходник:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
uses Spisok;
 
{процедура слияния 2-ух спиков}
Procedure Sliyanie(var first1,first2:u);
var vsp:u;
begin
  vsp:=first1;
  while vsp^.next<>nil do {перебор 1 списка до последнего элемента}
   vsp:=vsp^.next;
  vsp^.next:=first2; {последний элемент 1 списка указывает на начало 2}
  first2:=nil; {аннулируем 2 список}
end;
 
var Spisok1,Spisok2,PEnd,PEnd2,P:U;
i,n1,n2,x:integer;
 
begin
 write('Введите размер 1 списка: '); 
 readln(n1);
 read(x);
 Spisok1:=Nil;
 V_Nachalo(Spisok1,X);
 PEnd:=Spisok1;
 for i:=1 to n1-1 do
  begin
   read(x);
   V_Spisok(PEnd,x);
   PEnd:=PEnd^.Next;
  end;
 writeln('1 список: ');
 Print(Spisok1);
 writeln;
 
 write('Введите размер 2 списка: '); 
 readln(n2);
 read(x);
 Spisok2:=Nil;
 V_Nachalo(Spisok2,X);
 PEnd2:=Spisok2;
 for i:=1 to n2-1 do
  begin
   read(x);
   V_Spisok(PEnd2,x);
   PEnd2:=PEnd2^.Next;
  end;
 writeln('2 список: ');
 Print(Spisok2);
 writeln;
 
 Sliyanie(spisok1,spisok2);
 writeln('Получившийся список:');
 print(spisok1);
end.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.12.2011, 19:30
Ответы с готовыми решениями:

Слияние однонаправленных динамических списков
Задачка ТурбоПаскаль: Слить 2 списка (оба- возрастающая последовательность целых чисел) в третий который тоже должен быть упорядочен. Еще...

Слияние двух динамических массивов…
Приветствую Вас!:) Задача такая: Даны два массива: A и B (числовые), упорядоченные по неубыванию. Слить их в один упорядоченный...

Слияние двух упорядоченных списков
Всем привет! Можете подсказать как делать? Условие: Провести слияние двух упорядоченных списков. В качестве элементов первого списка...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2011, 19:30
Помогаю со студенческими работами здесь

Слияние двух отсортированных списков
Напишите функцию List&amp; merge(List&amp; L1, List&amp; L2), добавляю- щую к упорядоченному списку L1 также упорядоченный список L2 и ...

Слияние двух списков(срочно!)
Даны два списка, нужно их склеить. Вот, написал, но при комплияции выдаются неведомые мне ошибки. Кто-нибудь из опытных людей может мне...

Слияние двух упорядоченных списков в один упорядоченный
Даны два списка упорядоченные по не убыванию.Объединить их в третий список упорядоченный по не убыванию. Не могу разобраться с процедурой...

Слияние двух односвязных упорядоченных по неубыванию линейных списков
Разработайте программу слияния двух односвязных упорядоченных по неубыванию линейных списков в один упорядоченный список.

Как сделать слияние двух списков с последующей сортировкой?
Даны два списка. Необходимо слить два списка в один, отсортировать по убыванию и вывести. Вводится целое число N и N чисел со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru