Стек: почему выбрасывается исключение? - PascalABC.NET

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

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

Программа:
Почему выбрасывается исключение?

Решение задачи: «Стек: почему выбрасывается исключение?»

textual
Листинг программы
//Compiler: 3.3.5.1662
unit TypeStack;
interface
  type
    T = integer;
    
    PNode = ^TNode;
    TNode = record
      Value: T;
      Next: PNode;
      
//      constructor Create(value_: T; next_: PNode);
    end;
  
  procedure Push(var head: PNode; value: T);
  function Pop(var head: PNode): T;
  
implementation
//  constructor TNode.Create(value_: T; next_: PNode);
//  begin
//    Value := value_;
//    Next := next_;
//  end;
  
  {$region}
  procedure Push(var head: PNode; value: T);
  var node : PNode;
  begin
    new(node);
    node^.Next := head; node^.Value := value;
    // var node := new TNode(value, head);
    head := node;
  end;
  
  function Pop(var head: PNode): T;
  begin
    if head = nil then
      raise new System.InvalidOperationException('Unable to obtain topmost element.');
    Result := head^.Value;
    head := head^.Next;
  end;
  {$endregion}
end.

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


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

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

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