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;
}