Процедура удаления первого элемента из очереди - Free Pascal

Узнай цену своей работы

Формулировка задачи:

День добрый . Уже 2 день люблю свой мозг с этим. Какая процедура удаления первого элемента очереди ? Конец очереди слева (лефт ) а начала справа (райт ) То есть если ввожу 1 потом 2 потом 3 то выводит : 3 2 1. Переменные и типы:
Type
   inter=integer;
     Link=^turn;
      turn=record
       elem:inter;
        Next: Link;
end;
 Var left,right,a:Link;

Решение задачи: «Процедура удаления первого элемента из очереди»

textual
Листинг программы
uses crt;
Type
inter=integer;
Link=^turn;
turn=record
elem:inter;
Next: Link;
end;
Var left,right:Link;
znach:inter;
ch:char;
x:integer;
 
Procedure sozd(Var left,right:link);
begin
Left:=nil;
Right:=nil;
end;
 
 
procedure Add(var newEl:Link; znach1:inter);
var
c:Link;
begin
New(c);
c^.next:=newEl;
c^.elem:=znach1;
newEl:=c;
If Right=nil then Right:=c;
end;
Procedure FreeMemory(left1:Link);
var
c:Link;
begin
If left1<>nil then
  while left1<>nil do
  begin
    c:=left1;
    left1:=left1^.next;
    Dispose(c);
  end;
end;
 
 
 
procedure Vivid(left1:Link);
begin
if left1=nil then
begin
writeln('Очередь пуста.');
readln;
exit;
end;
while left1<>nil do
begin
Write(left1^.elem, ' ');
left1:=left1^.next
end;
end;
 
procedure DelFirst(var rig:link);
Var a : link;
begin
if left=nil then begin
write('pusto');
exit;
end;
 
If left=rig then
Begin
  Dispose(rig);
  rig:=nil;
  left:=nil;
end
  else
  Begin
    a:=left;
    While a^.Next<>rig do a:=a^.Next;
    Dispose(rig);
    a^.Next:=nil;
    rig:=a;
  end;
end;
 
begin;
Left:=nil;
Right:=nil;
Writeln ('Створити нову чергу ? ');
Writeln ('Якщо так то нажміть " 1 "');
Writeln ('Якщо ні, нажімть " 0 "');
Readln(x);
 
if x=1 then begin
 
repeat
clrscr;
 
Writeln('Черга створена');
Writeln('Виберіть наступну дію:');
Writeln('1) Додати елемент.');
Writeln('2) Вивести елементи.');
Writeln('3) Видалити елемент ');
Writeln('4) Вихід з программи.');
writeln;
ch:=readkey; If Ch=#0 then Ch:=Readkey;
case ch of
 
'1':begin
Writeln('Введіть елемент, який потрібно додати');
readln(znach);
Add(left,znach);
 
end;
 
'2': begin
clrscr;
Vivid(left);
readln;
 
end;
 
'3':begin
ClrScr;
DelFirst(right);
Vivid(left);
Readln;
end;
 
end;
 
until ch='4';
 
freememory(left);
end
else
exit;
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы