例キュー - 通信ブロック

コードは以下の通りであります:

  1つの#include <iostreamの>
   2  使用して 名前空間STDを、
  3  構造体ノード
   4  {
   5      INT X、Y。
  6  }。
  7  INT [ 100 ] [ 100 ]、H、W。
  8  // 队列
  9  構造体キュー
 10  {
 11      ノード[ 100 ]。
12      int型のフロント。
13      int型のリア。
14  }、Q。
15  INTはn = 50//保存された実際の空間は、0-nがN + 1です。
16  // フルチーム
。17  BOOL isFull()
 18である {
 19。     リターン(+ q.rear 1)%(N + 1)== q.front;
 20  }
 21である // ブランク強制
22が BOOL のisEmpty()
 23は 、{
 24      リターン q.rear == q.front;
 25  }
 26である // エンキュー
27  空隙INQ(ノードX)
 28  {
 29      IFは(!isFull())
 30      {
 31れます         QA [q.rear] =のX。
32          q.rear =(q.rear + 1)%(N + 1 )。
33      }
 34      他の
35      {
 36          COUT << " キューがいっぱいです。" 37      }
 38  }
 39  // 出队
40  ノードOUTQ()
 41  {
 42      ノードT。
43      T = QA [q.front]。
44      q.front =(q.front + 1)%(N + 1 )。
45      リターントン。
46 
47  }
 48  ボイドマーク(ノードT_N)
 49  {
 50      ノードT。
51      [t_n.x] [t_n.y] = 2 ;
52      であれば(t_n.x- 1 > = 0 53      {
 54          TX = t_n.x- 1 55          TY = t_n.y。
56          であれば([TX] [TY] == 1 57          {
 58              INQ(T)。
59          }
 60      }
 61      であれば(t_n.y- 1 > =0 62      {
 63          TX = t_n.x。
64          TY = t_n.y- 1 65          であれば([TX] [TY] == 1 66          {
 67              INQ(T)。
68          }
 69      }
 70      であれば(t_n.x + 1 < w)の
 71      {
 72          TX = t_n.x + 1 73          TY = t_n.y。
74          であれば([TX] [TY] == 1 75          {
76              INQ(T)。
77          }
 78      }
 79      であれば(t_n.y + 1 < H)
 80      {
 81          TX = t_n.x。
82          TY = t_n.y + 1 83          であれば([TX] [TY] == 1 84          {
 85              INQ(T)。
86          }
 87      }
 88      ながら(!のisEmpty())
 89      {
 90          マーク(OUTQ())。
91      }
 92 }
 93  main()の
 94  {
 95      q.front = 0 96      q.rear = 0 97      INT C = 0 98      CIN >> H >> W。
99      のためにint型 I = 0 ; iが時間<; Iは++ 100      {
 101          のためにINT J = 0 ; J <W; J ++ 102          {
 103              CIN >> [I] [J]。
104          }
 105      }
 106     int型 iは= 0 ; iが時間<Iは++ 107      {
 108          のためのINT J = 0 ; J <W; J ++ 109          {
 110              もし([I] [J] == 1 111              {
 112                  のノードT ;
113                  TX = I;
114                  TY = J。
115                  マーク(T)。
116個の                  C ++ ;
117              }
 118          }
 119     }
 120      COUT << C。
121 }

1つの経営成績:

エフェクト2を実行します。

おすすめ

転載: www.cnblogs.com/wanjinliu/p/11415784.html