Шаг 20.
Просмотр информационного поля вершины стека. Определение наличия элементов в стеке. Получение копии стека

   

Просмотр информационного поля вершины стека

 Procedure Viewing_Top (pTop: PtrRec; var D: TypeElement);
 Begin
   D := pTop^.Element;
 End;

Определение наличия элементов в стеке

 Function Empty_Stack (pTop: PtrRec) : Boolean;
 Begin
   Empty_Stack := pTop = Nil;
 End;

Получение копии стека

    Для получения копии воспользуемся вспомогательным стеком pTop3, элементы которого получаются переворотом стека.
 Procedure Copy_Stack(pTop1: PtrRec; var pTop2: PtrRec);
   Var pAux, pTop3 : PtrRec;
Begin
 pTop3 := Nil;
 If pTop1 <> Nil
   Then 
    Begin
      pAux := pTop1;
      While pAux <> Nil do
        Begin
           Add_Stack(pTop3, pAux^.Element);
           pAux := pAux^.pNext;
        End;
     pTop2 := Nil;
     pAux := pTop3;
     While pAux <> Nil do
         Begin
            Add_Stack(pTop2, pAux^.Element);
            pAux := pAux^.pNext;
         End;
    End;
   Else pTop2 := Nil;
 End;

    На следующем шаге мы рассмотрим очереди, сформированные на базе однонаправленного списка.




Предыдущий шаг Содержание Следующий шаг