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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2012, 21:28   #1
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
По умолчанию Задача на стек или очередь (Делфи)

Уже неделю бьюсь с этой задачей. Не могу придумать процедуры проверки вхождения\не вхождения в список. Задание такое: написать программу в результате которой будет создан список в который по одному разу входят элементы которые входят в список L1, но не входят в список L2
Код:
type
  List=^Node;
  Node=record
         inf:Integer;
         flag:Boolean;
         next:List;
       end;
 
procedure list_Push(var l: List; x: Integer); 
var
  p: List;
begin
  new(p);
  p^.inf:=x;
  p^.flag:=false;
  p^.next:=l;
  l := p;
end;
 
function list_Pop(var l: List): Integer; 
var
  p:List;
begin
  p:= l;
  l:= l^.next;
  list_Pop:=p^.inf;
  p^.next:=nil;
  dispose(p);
end;
 
function read_List(fName:string):List;  
var
  l:List;
  f:Text;
  x:Integer;
begin
  assign(f,fName);
  reset(f);
  l:=nil;
  while not eof(f) do
  begin
    read(f,x);
    list_Push(l,x);
  end;
  closeFile(f);
  read_List:=l;
end;
function is_in_list(l1:list;):boolean;
begin
  if s=nil then
    is_in_list:=false
  else
    is_in_list:=is_in_list(s^.next,e)
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг
(Нафаня) вне форума Ответить с цитированием
Старый 26.12.2012, 22:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в который по одному разу входят элементы которые входят в список L1, но не входят в список L2
Функа Кол-ва:
Код:
function InList(l:list;v:integer):integer;
begin Result:=0;
 while (l<>nil) do begin if(l^.inf=v) then Result:=Result+1; l:=l^.next;end;
end;
Функа формирования списка:
Код:
Function ReList(l1,l2:List):List;
var h,d:List;
begin
 h:=nil;l:=nil;
 while q<>nil do begin
  if (InList(l2,l1^.inf)=0) and (InList(l1,l1^.inf)=1) then begin
   new(l); l^.inf:=l1^.inf;
   if h<>nil then h^.next:=l else h:=l;
   if Result=nil then Result:=h;
  end;
 end;
end;
За точность не ручаюсь. Проверяй. (Чуть поправил...)

Цитата:
(Нафаня)
Подпись свою смени. Забанют за мат.
I'm learning to live...

Последний раз редактировалось Stilet; 26.12.2012 в 22:16.
Stilet вне форума Ответить с цитированием
Старый 26.12.2012, 22:26   #3
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
По умолчанию

Сменю) А за ответ спасибки=)))
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг
(Нафаня) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек и очередь Кротяка Общие вопросы C/C++ 1 12.08.2014 18:51
списки стек очередь slavnayanata Помощь студентам 0 23.05.2011 21:04
Стек и очередь. (Delphi) Olgasato Помощь студентам 8 02.04.2010 08:08
Стек. Очередь. Делфи Fantazerishka Помощь студентам 6 09.12.2009 15:08