Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/42: Рейтинг темы: голосов - 42, средняя оценка - 4.93
Cover
1 / 1 / 0
Регистрация: 23.07.2010
Сообщений: 5
1

Сформировать третий список, включив в него по одному разу элементы из первого, не входящие во второй

23.07.2010, 10:58. Просмотров 7661. Ответов 8
Метки нет (Все метки)

Здравствуйте! Начал разбор темы ссылочных типов данных. Интересно, как всегда, но сразу столкнулся с задачей, которую не понял принципиально:

Цель работы - изучение ссылочных типов данных, работа со связными списками.

Замечание: Сформировать односвязный список и вывести на экран полученную инфу, согласно задаче.

Задача: даны 2 списка целых чисел. Сформировать 3й список, включив в него по одному разу эл-ты из первого списка, не входящие во 2й (без использ. массивов).

(Хотел формировать 1й и 2й списки с клавитуры, недопонял процесс формирования именно ДВУХ списков). Подскажите !?!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2010, 10:58
Ответы с готовыми решениями:

Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1 но не входят в список L2
Составить программу, которая формирует список L, включив в него по одному разу элементы, которые...

Сформировать список, включив в него по одному разу те элементы, входящие одновременно в оба других списка
Дано два односвязных списка L1,L2, элементы которых - действительные числа. Описать процедуру,...

Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2. Ошибка
Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба...

Сформировать новый массив, включив в него те элементы первого массива, которых нет во втором
Даны два массива чисел. Расположить их элементы по возрастанию. Сформировать новый массив, включив...

Сформировать. файл, включив в него по одному разу элементы, которые входят одновременно в оба файла
Помогите решить Текстовые файлы заранее спасибо.. Составить программу, которая формирует файл,...

8
Puporev
Модератор
56868 / 43448 / 30039
Регистрация: 18.05.2008
Сообщений: 103,513
23.07.2010, 11:01 2
почитайте это
http://www.cyberforum.ru/pascal/thread77419.html
0
Cover
1 / 1 / 0
Регистрация: 23.07.2010
Сообщений: 5
23.07.2010, 11:18  [ТС] 3
Спасибо ... т.е. правильным, в данном случае, будет - procedure AddElem(var stek1 ... и ... var stek2, а потом сортировка, так или нет ??? я принципиально не понял пока ... 2 процедуры ?
0
lexus_ilia
3062 / 722 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
23.07.2010, 22:39 4
Cover, Вы слабоваты ещё в теории программирования. Правильным будет создать два списка (у вас после создания двух списков будет 2 указателя на начало двух списков). После этого следует пробегать по этим спискам, так же как Вы пробегаете по массивам, просто переход по другому осуществляется, и смотреть есть ли "такой" (имеется ввиду элемент из второго списка) элемент в первом списке, если нету, то проверить не добавляли ли Вы уже такой элемент в список (3-ий список), если нет, то всё хорошо, добавляем элемент в список.
Что не ясно, спрашивайте.
0
23.07.2010, 22:39
Cover
1 / 1 / 0
Регистрация: 23.07.2010
Сообщений: 5
23.07.2010, 23:02  [ТС] 5
у нас - доброночь ... естессно, я и не скрываю, что слаб ... сейчас, делаю так: запрос на количество эл-в 1го и 2го списков, выделение памяти под 1й, 2й и 3й, в цикле - ввод значений, потом - сортировка ...
0
lexus_ilia
3062 / 722 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
24.07.2010, 00:20 6
Cover, Вы тему смотрели, ссылку на которую Вам довал ув. Puporev ? Ведь там в примерах кристально ясно, что память выделяется, не спрашивая у пользователя сколько будет элементов, а во время выполнения программы выделяется память элемент за элементом. Почитайте хорошенько код, который представлен в теме + википедию + поиск по форуму по разделу паскаль на тему "списки" "однонаправленные списки" "динамическое программирование". После всего этого создайте для начала приложение, которое будет создавать хотя бы один список (но создавать его правильно, опять же в теме всё есть), потом добавьте создание второго списка и вывод двух списков (такая процедура/функция уже есть в теме), а только после этого пытайтесь слить их вместе. Важно Вам для понимания, что память под 3-ий список будет выделятся во время прохода по двум спискам, элемент за элементом.
У Вас всё получится !
0
Cover
1 / 1 / 0
Регистрация: 23.07.2010
Сообщений: 5
24.07.2010, 00:25  [ТС] 7
пасиб ... я сабсем начинающий ))) ... всё понял и всё получится !
0
Mad_Dog
Фрилансер
449 / 430 / 117
Регистрация: 01.06.2010
Сообщений: 1,315
24.07.2010, 19:26 8
Cover, вот тебе архив с исходниками, там почти твоя задача решена, за несколькими исключениями. Разберешься с кодом, сделаешь своё решение...
two4one.rar
0
Cover
1 / 1 / 0
Регистрация: 23.07.2010
Сообщений: 5
02.08.2010, 18:13  [ТС] 9
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
program Lab_10; uses crt;
 
type
nodes=^node;
node=record
   data: integer;
   left, right: nodes;
end;
 
var
tree, left, right: nodes;
n, x, y, z, i:integer;
key: char;
 
procedure add (var tree: nodes; x: integer);
begin
   if tree=nil then
      begin
      new (tree);
      tree^.data :=x;
      tree^.left :=nil;
      tree^.right:=nil;
      exit;
      end;
   if x=y then add (tree^.left, y);
   if x=z then add (tree^.right,z);
end;
 
procedure lscan (tree: nodes);
   begin
   if tree=nil then exit
   else
   write(' ', tree^.data, ';');
   lscan (tree^.left);
   end;
 
procedure rscan (var tree: nodes);
   begin
   if tree=nil then exit
   else
   write(' ', tree^.data, ';');
   rscan (tree^.right);
   end;
 
begin tree:=nil;
   repeat; clrscr; textcolor(1); writeln;
      writeln('  1).Создание cписков. ');
      writeln('  2)....Обзор списков. ');
      writeln('  3)............Выход. '); writeln;
      write  ('  Выберите действие: '   );
      readln (key); clrscr;
      case key of
   '1' : begin
         writeln; writeln ('  Список 1. ');  writeln;
         write ('  Количество элементов: '); readln (n); writeln;
         for i:=1 to n do
            begin
            write ('  Введите элемент - ');
            readln (y); add (tree, y);
            end;
         writeln; writeln ('  Список 2. ');  writeln;
         write ('  Количество элементов: '); readln (n); writeln;
         for i:=1 to n do
            begin
            write ('  Введите элемент - ');
            readln(z); add (tree,z);
            end;
         end;
   '2' : begin
         writeln; write ('  Список 1: ');
         if tree<>nil then
         lscan (tree); writeln;
         writeln; write ('  Список 2: ');
         if tree<>nil then
         rscan (tree^.right); writeln;
         writeln; write ('  Жми " Enter " ... '); readln;
         end;
   '3' : exit;
      end;
   until (key<'1') and (key>'4');
end.
... такой ввод - вывод допустим ???
1
02.08.2010, 18:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2010, 18:13

Списки. Составить программу которая формирует список L, включив в него по одному разу элементы, которые входят одновременно в оба списа L1 и L2
Составить программу которая формирует список L, включив в него по одному разу элементы, которые...

Сформировать список Р, включив в него элементы списка Р1, которые не входят в список Р2
Как написать функцию или процедуру, которая формирует список Р, включив в него по одному разу...

Строки и множества. Вывести в алфавитном порядке все буквы текста, входящие в него по одному разу
1.Вывести в алфавитном порядке все буквы текста, входящие в него по одному разу...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru