スタック操作のうちスタックおよびリンクスタックの順序

スタック順:

1の#include <iostreamの>
 2  使用して 名前空間STDを、
3  CONST  INT MAXN = 100 4のtypedef 構造体Sノード{
 5個の     int型データ[MAXN]。
6      INTのトップ= - 1 7  }スタック。
8  
9  int型のプッシュ(スタック* S、int型 N){ // 将N个数入栈
10      であれば(S->トップ== Maxn- 1 ){
 11          COUT << " ERROR!" 12          リターン 0;
13      }
 14      のint V。
15      一方(N!= 0 ){
 16          S->トップ++ 17          cinを>> V;
18          S->データ[S->トップ] = V。
19          - N。 
20      }
 21      リターン 1 22  }
 23  int型ポップ(スタック* S){ // 出栈操作
24      であれば(S->トップ== - 1 ){
 25          coutの<< " ERROR!" ;
26         リターン 0 ;
27      }
 28      S-> top-- 29      リターン 1 30  }
 31  ボイドプリント(スタックS){
 32      であれば(s.top == - 1)COUT << " ERROR!" << ENDL。
33      一方(s.top> = 0 ){
 34          COUT << s.data [s.top] << "  " 35          - s.top。
36      }
 37      COUT << ENDL。 
38  }
 39  INTメイン(){
 40      スタックS。
41      INT N。cinを>> N;
42      プッシュ(&S、N)。
43      プリント(S)。
44      ポップ(&S)。
45      プリント(S)。
46      リターン 0 ;
47 }

 

チェーン・スタック:

1の#include <STDLIB.H>
 2の#include <iostreamの>
 3。 使用した 名前空間STD;
 4  
5。 typedefは構造体 SNODE { // リンクスタック構造ノード
6。     INT データ;
 7      構造体 SNODE * 次に、
 8 } * SPTR、
 図9のtypedef 構造体 LStack { // リンクスタック構造体
10      のトップSPTR;
 11      int型 COUNT = 0 ;
 12である }スタック、
 13は 
14  INTプッシュ(スタックS *、INT N-){// 入栈
15      SPTR秒。
16      INT V;
17      一方(N!= 0 ){
 18          、S =(Sノード*)はmallocはsizeof (Sノード))。
19          cinを>> V;
20          S->データ= V。
21          S->次= S-> トップ。
22          S->トップ= S。
23          S->数++ ;
24          - N。
25      }
 26      リターン 0 27  }
 28  のintポップ(スタック* S){ // 出栈
29      SPTR秒;
30      S = S-> トップ。
31      S->トップ= S->トップ> 次。
32      S-> count-- 33      フリー(S)。
34      リターン 0 35  }
 36  
37  ボイドプリント(スタックS){
 38      であれば(S.top == NULL)COUT << " ERROR!" << ENDL。
39      {
 40          SPTR S = S.top。
41          一方、(S!= NULL){
 42             coutの<< S->データ<< "  " ;
43              S = S-> 次。
44          }
 45          COUT << ENDL。
46      }
 47  }
 48  int型のmain(){
 49      スタックS。
50      INT N。cinを>> N;
51      プッシュ(&S、N)。
52      // 印刷(S); 
53      ポップ(&S)。
54      印刷(S);
55      
56      戻り 0 ;
57 }

おすすめ

転載: www.cnblogs.com/Lynn-2019/p/12159217.html