Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2014, 12:23   #1
newbieee
Пользователь
 
Регистрация: 24.10.2014
Сообщений: 20
По умолчанию Динамические структуры данных.Работа с несколькими списками

Сформировать два списка из N целочисленных случайных элементов (N – вводится пользователем, значения элементов выбирать из диапазона от 1 до 99). Вставить после каждого нечетного элемента первого списка наибольший элемент второго списка, а после четного элемента первого списка – наименьший элемент второго списка.
newbieee вне форума Ответить с цитированием
Старый 21.11.2014, 13:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

newbieee, ну у Вас же это не первая тема. Т.е. с динамическими списками Вы уже научились работать? Создавать, добавлять элементы, перебирать, вставлять элементы в нужное место?
Так чем работа с двумя списками отличается от работы с одним?! Тем, что нужно иметь две переменные, одна из которых указывает на начало первого списка, а вторая - указатель на начало второго списка?! В чём сложности то?!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2014, 10:36   #3
newbieee
Пользователь
 
Регистрация: 24.10.2014
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
newbieee, ну у Вас же это не первая тема. Т.е. с динамическими списками Вы уже научились работать? Создавать, добавлять элементы, перебирать, вставлять элементы в нужное место?
Так чем работа с двумя списками отличается от работы с одним?! Тем, что нужно иметь две переменные, одна из которых указывает на начало первого списка, а вторая - указатель на начало второго списка?! В чём сложности то?!!

Код:
program chetvertaya;
type Ptr=^count;
     count=Record
           Key:integer;
           Next:ptr;
          end;
procedure spisok(var first,p:ptr);
var n,i:integer;
    q:ptr;
begin
//создаем исходный список
repeat
write('Размер списка n>1 n=');
readln(n);
until n>1;
new(p);
first:=p;
p^.next:=nil;
p^.key:=1+random(99);
q:=p;
for i:=2 to n do
 begin
  new(p);
  p^.key:=1+random(99);
  p^.next:=nil;
  q^.next:=p;
  q:=p;
 end;
end;
procedure print(first,p:ptr;s:string);
begin
//Выводим на экран
writeln(s);
p:=first;
while (p<>nil) do
 begin
  write(p^.key,' ');
  p:=p^.next;
 end;
writeln;
end;
var s1,s2,first1,first2,l,q:ptr;
    k,mx,mn:byte;
begin
randomize;
spisok(first1,s1);
print(first1,s1,'Исходный список 1');
spisok(first2,s2);
print(first2,s2,'Исходный список 2');
mn:=100;
mx:=0;
s2:=first2;
while (s2<>nil) do
 begin
  if s2^.key<mn then mn:=s2^.key;
  if s2^.key>mx then mx:=s2^.key;
  s2:=s2^.next;
 end;
writeln('Минимальный=',mn,' Максимальный=',mx);
//Вставляем в 1 список после нечетных максимум, после четных минимум
s1:=first1;
while s1<>nil do
 begin
  k:=s1^.key; //смотрим значение
  new(l);
  q:=s1^.next;
  s1^.next:=l;
  l^.next:=q;
  if k mod 2=0 then l^.key:=mn//Вставляем min
  else l^.key:=mx;//Вставляем max
  s1:=l^.next;
 end;
//Выводим полученный список
print(first1,s1,'Вставка элементов в список 1');
end.
newbieee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические структуры данных ksesh Паскаль, Turbo Pascal, PascalABC.NET 5 19.06.2014 17:07
Динамические структуры данных Надюша808 Паскаль, Turbo Pascal, PascalABC.NET 1 16.04.2013 22:31
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Динамические структуры данных - работа со списками (Pascal) RakNaGore Помощь студентам 0 13.02.2012 18:57
Динамические структуры данных: работа со списком галечка26 Паскаль, Turbo Pascal, PascalABC.NET 3 06.01.2011 18:57