データ構造4:スタックキューと

常にスタック機能を覚えている:LIFO

キュー:FIFO

スタックの例を書きます

1  // 8进制转换
2の#include <iostreamの>
 3の#include <積層>
 4  使って 名前空間STDを、
5  ボイド変換(int型N)
 6  {
 7      スタック< INT > 結果。
8      一方、(N)
 9      {
 10          result.push(N%8)。// 入栈
11          N = N / 8 12      }
 13      ながら(!result.empty())
 14      {
 15         COUT << result.top()。
16          result.pop()。// 出栈
17      }
 18  }
 19  のint main()の
 20  {
 21      変換(1348 )。
22      リターン 0 ;
23 }

私は、一致する括弧を書きました

1  // 括弧一致
2の#include <入出力ストリーム>
 。3の#include <スタック>を
 4。 使用した 名前空間STD;
 5  BOOLサイド(チャー CH)// 判定が真、右括弧または左括弧では、括弧を残している、偽右ブラケットで
6  {
 。7      IF(CH == ' ' || CH == ' [ ' 8。         復帰 trueに図9      他の
10      {
 11          リターン falseに12である     }
 13である     
14  }
 15 BOOL MAT(チャー右、チャー左)// 左右のブラケットと同じタイプの2つの文字か否かを判断する
16  {
 17。     IF(右==  &&左== 18が         戻り trueに19      IF(右== ' [ ' &&左== ' ] ' 20が         戻り trueに21で     返す falseに22れる }
 23で BOOLの一致(文字列STR)
 24 {
 25      スタック< チャー > 再;
 26は      オートW = str.begin();
 27      (;!Str.end W =(); W ++ 28      {
 29          IF(サイド(W *))// 左ブラケット
30              re.push(* W)、
 31は         他の
32          {
 33は             IF(MAT(re.top()* W))// スタックに適合させることができ、左右のブラケットのブラケット
34が                 、{
 35                      (re.pop);
 36  
37                  }
 38          }
 39          
40      }
41      であれば(re.empty())
 42          リターン 43      他の
44      {
 45          リターン 46      }
 47      
48  }
 49  
50  のint main()の
 51  {
 52      // COUT <<一致( "[([] [])]")。
53      COUT <<一致(" [(])" )。
54      リターン 0 ;
55 }

 

おすすめ

転載: www.cnblogs.com/neverland0718/p/11413951.html