1 / 1 / 0
Регистрация: 19.12.2013
Сообщений: 13
1

Слияние двух упорядоченных списков в один упорядоченный

13.06.2014, 21:20. Показов 3290. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны два списка упорядоченные по не убыванию.Объединить их в третий список упорядоченный по не убыванию.
Не могу разобраться с процедурой объединения.
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Uses Crt;
Type
  Plist=^Tlist;
  Tlist=record
       info:integer;
       next:Plist;
       end;
 
procedure MakeList(var head:Plist;n:integer);//создание списка
var p,q:Plist;
    k,i:integer;
begin
  new(head);
  head^.next:=nil;
  p:=head;
  for i:=1 to n do
  begin
    new(q);
    write('введите число: ');
    readln(k);
    q^.info:=k;
    q^.next:=nil;
    p^.next:=q;
    p:=q;
  end;
end;
 
procedure Print(head:Plist);//вывод на экран
var p:plist;
begin
  p:=head^.next;
  while p<>nil do
  begin
    write(p^.info:4);
    p:=p^.next
  end;
  writeln;
end;
procedure Switch(L1,L2:Plist;var L3:Plist);//слияние 2 списков {не работает} c ней проблемы)
var h1,h2,h3,q,p:plist;
begin
  new(h1);
  new(h2);
  new(L3);
  L3^.next:=nil;
  h1:=L1^.next;
  h2:=L2^.next;
  if h1^.info>h2^.info then
  begin
    new(h3);
    h3:=L3;
    h3:=L3^.next;
    h3^.info:=h2^.info;
  end
  else
  begin
    new(h3);
    h3:=L3;
    h3:=L3^.next;
    h3^.info:=h1^.info;  
  end;
  while(h1<>nil)or(h2<>nil)do
  begin
    if h1=nil then
    begin
      h3^.info:=h2^.info;
      h3:=h3^.next;
      h2:=h2^.next;  
    end;
    if h2=nil then
    begin
      h3^.info:=h1^.info;
      h3:=h3^.next;
      h2:=h1^.next;
    end;
  if h1^.info>h2^.info then
  begin
    h3^.info:=h2^.info;
    h3:=h3^.next;
    h2:=h2^.next;
  end
  else
  begin
    h3^.info:=h1^.info;
    h3:=h3^.next;
    h2:=h2^.next;
  end;
  end;
end;
Var L1,L2,L3:plist;
    n:integer;
Begin
  writeln('введите кол-во элементов 1-ого списка');
  readln(n);
  MakeList(L1,n);
  writeln('введите кол-во элементов 2-ого списка');
  readln(n); 
  MakeList(L2,n);
  writeln('первый список');
  Print(L1);
  writeln('второй список');
  Print(L2);
  Switch(L1,L2,L3);
  Print(L3);
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2014, 21:20
Ответы с готовыми решениями:

слияние двух упорядоченных массивов в один упорядоченный
это слияние двух упорядоченных массивов в один упорядоченный, программу я сама напишу, тока...

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

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

Объединить два упорядоченных по неубыванию списка М1 и М2 в один упорядоченный
Написать программу, содержащую процедуру, которая объединяет два упорядоченных по неубыванию списка...

2
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
13.06.2014, 22:43 2
Слейте два упорядоченных по невозрастанию списка в один
1
1 / 1 / 0
Регистрация: 19.12.2013
Сообщений: 13
14.06.2014, 20:27  [ТС] 3
Спасибо!
0
14.06.2014, 20:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2014, 20:27
Помогаю со студенческими работами здесь

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

Слияние двух упорядоченных файлов
Здравствуйте.Помогите пожалуйста решить задачу: Создать два файла А и В из целых чисел. Файл А...

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru