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

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

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

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

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

textual
Листинг программы
  1. uses crt;
  2. Type
  3. inter=integer;
  4. Link=^turn;
  5. turn=record
  6. elem:inter;
  7. Next: Link;
  8. end;
  9. Var left,right:Link;
  10. znach:inter;
  11. ch:char;
  12. x:integer;
  13.  
  14. Procedure sozd(Var left,right:link);
  15. begin
  16. Left:=nil;
  17. Right:=nil;
  18. end;
  19.  
  20.  
  21. procedure Add(var newEl:Link; znach1:inter);
  22. var
  23. c:Link;
  24. begin
  25. New(c);
  26. c^.next:=newEl;
  27. c^.elem:=znach1;
  28. newEl:=c;
  29. If Right=nil then Right:=c;
  30. end;
  31. Procedure FreeMemory(left1:Link);
  32. var
  33. c:Link;
  34. begin
  35. If left1<>nil then
  36.   while left1<>nil do
  37.   begin
  38.     c:=left1;
  39.     left1:=left1^.next;
  40.     Dispose(c);
  41.   end;
  42. end;
  43.  
  44.  
  45.  
  46. procedure Vivid(left1:Link);
  47. begin
  48. if left1=nil then
  49. begin
  50. writeln('Очередь пуста.');
  51. readln;
  52. exit;
  53. end;
  54. while left1<>nil do
  55. begin
  56. Write(left1^.elem, ' ');
  57. left1:=left1^.next
  58. end;
  59. end;
  60.  
  61. procedure DelFirst(var rig:link);
  62. Var a : link;
  63. begin
  64. if left=nil then begin
  65. write('pusto');
  66. exit;
  67. end;
  68.  
  69. If left=rig then
  70. Begin
  71.   Dispose(rig);
  72.   rig:=nil;
  73.   left:=nil;
  74. end
  75.   else
  76.   Begin
  77.     a:=left;
  78.     While a^.Next<>rig do a:=a^.Next;
  79.     Dispose(rig);
  80.     a^.Next:=nil;
  81.     rig:=a;
  82.   end;
  83. end;
  84.  
  85. begin;
  86. Left:=nil;
  87. Right:=nil;
  88. Writeln ('Створити нову чергу ? ');
  89. Writeln ('Якщо так то нажміть " 1 "');
  90. Writeln ('Якщо ні, нажімть " 0 "');
  91. Readln(x);
  92.  
  93. if x=1 then begin
  94.  
  95. repeat
  96. clrscr;
  97.  
  98. Writeln('Черга створена');
  99. Writeln('Виберіть наступну дію:');
  100. Writeln('1) Додати елемент.');
  101. Writeln('2) Вивести елементи.');
  102. Writeln('3) Видалити елемент ');
  103. Writeln('4) Вихід з программи.');
  104. writeln;
  105. ch:=readkey; If Ch=#0 then Ch:=Readkey;
  106. case ch of
  107.  
  108. '1':begin
  109. Writeln('Введіть елемент, який потрібно додати');
  110. readln(znach);
  111. Add(left,znach);
  112.  
  113. end;
  114.  
  115. '2': begin
  116. clrscr;
  117. Vivid(left);
  118. readln;
  119.  
  120. end;
  121.  
  122. '3':begin
  123. ClrScr;
  124. DelFirst(right);
  125. Vivid(left);
  126. Readln;
  127. end;
  128.  
  129. end;
  130.  
  131. until ch='4';
  132.  
  133. freememory(left);
  134. end
  135. else
  136. exit;
  137. end.

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


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

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

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы