スタックは、私たちがこの小さな要約でコードを書くことが困難な多くの問題を解決することができ、より重要な線形構造です。
インプリメンテーションは、ここでは、シーケンシャル構造は、鎖状構造を改善する必要があります。。。
コードの場合:
1つの#include <iostreamの> 2 使用して 名前空間STDを、 3 4 クラススタック 5 { 6 プライベート: 7 のint MSIZE。 8 int型 * ST; 9 int型のトップ。 10 公衆: 11 スタック(int型のサイズ)。 12 ブールプッシュ(INT&アイテム); 13 ブールポップ()。 14 ボイドディスプレイ(); 15 BOOL クリア(); 16 〜スタック(); 17 }。 18 19スタック::スタック(int型のサイズ) 20 { 21 MSIZE = サイズ。 22 ST = 新しい int型[MSIZE]。 23 トップ= - 1 。 24 } 25 26 ブールスタック::プッシュ(INT&アイテム) 27 { 28 29に あれば(トップ== msize- 1 ) 30 { 31 COUT << " 栈已满!" << ENDL。 32 リターン 0 。 33 } 34 ST [++トップ] = 項目。 35 リターン 1 。 36 } 37 38 ブールスタック::ポップ() 39 { 40 であれば(トップ== - 1 ) 41 { 42 COUT << " 栈已空!" << ENDL。 43 リターン 0 。 44 } 45 // アイテム= ST [top--]。 46 top-- ; 47 リターン 1; 48 } 49 50 ボイドスタック::ディスプレイ() 51 { 52 のint TEMP = トップ。 53 ながら(!TEMP = - 1 ) 54 { 55 COUT << ST [TEMP] << " " 。 56 temp-- 。 57 } 58 59 COUT << ENDL。 60 } 61 ブールスタック::クリア() 62 { 63 トップ= - 1 。 64 リターン 1; 65 } 66 67スタック::〜スタック() 68 { 69 [] STを削除します。 70 } 71 72 のint main()の 73 { 74 スタックST(10 )。 75 INT ELE。 76 裁判所未満<< " 输入元素:" << てendl; 77 のために(int型 I = 0 ; iが< 10 ; iが++ ) 78 { 79 CIN >> ELE。 80 st.push(ELE); 81 } 82 COUT << " スタックのすべての要素:" << ENDL; 83 st.display(); 84 st.pop(); 85 st.pop(); 86 COUT << " 印刷後に2つの要素をポップ:" << ; ENDL 87 st.display(); 88 リターン 0 ; 89 }
プログラムの結果:
ます。https://www.cnblogs.com/sjlove/archive/2013/05/22/3093780.htmlで再現