スタックの定義と基本操作

1.スタックの定義、性質、およびストレージ

1.定義:スタックは、テーブルの一方の端にのみ制限される線形テーブルです
。2。性質:
先入れ先出し(後入れ先出し3。スタックストレージ:順次ストレージおよびチェーンストレージここに画像の説明を挿入

2つ目は、シーケンシャルスタックの基本的な操作です。

ここに画像の説明を挿入
シーケンシャルスタックの型定義

typedef struct{
    
    
  ElemType ST[maxsize];
  int top;
}stack;

スタックのプッシュ操作
(1)まずスタックがいっぱいかどうかを判断し、スタックがいっぱいの場合は「スタックフルオーバーフロー」を出力します。
(2)最初にtop ++をポインタし、次に要素値をスタックにプッシュします。

Push(&S,e)
{
    
    
 if(S.top==maxsize-1)
 cout<<"栈满溢出"<<endl;
 else
 {
    
    
  S.tpo++;
  S.St[S.top]=e;
 }
 return S;
}

スタックのポップアップ操作
(1)スタックが空かどうかを判断し、空の場合は「スタック空アンダーフロー」を返します。
(2)スタックの最上位要素とポインタを取得します。

POP(&S,&e)
{
    
    
if(S.top==0)
cout<<"栈空下溢"<<endl;
else
 {
    
    
  e=S.ST[S.top];
  S.top--;
 }
 return S;
}


スタックの最上位要素を読み取るスタックが空でない場合は、スタックの最上位要素を読み取って返します(この操作ではスタックポインターは変更されません)。

Gettop(S,&e)
{
    
    
  if(S.top!=0)
  e=S.ST[S.top];
  return e;

おすすめ

転載: blog.csdn.net/gets_s/article/details/104946838