PHPキューアルゴリズム
このクラスキューに2つのアルゴリズムは、データが配置されているデータ・クラスであり、第2の待ち行列は、このキューのクラスがいくつかの操作がキューことです。
まず、キュー内のすべてを格納するためのフロント(キューの先頭、それはチームが外に起こっている、である)、リア(永遠に0を指し、ここでキューの末尾)が含まキューが(とき時空の前の要素があるキューのデフォルト、のようになり、データをキューに入れられました彼リアポイント)MAXSIZE(キュー長)の4つのプロパティ
アプリケーションノート:
1つのキュー初期化:リア0に初期化キューMAXSIZEとしてキューに渡されたパラメータを生成する、フロントキューのみ正面、この時点で0に設定され、後の要素を0に彼を指し
2.チーム:キューが満杯であるかどうか(前後==のMAXSIZE)、チップの完全な場合、Ruoguoはフルフロント+ 1を聞かせていないが、その後、新しいに、つまり(画像を移動する前に、キュー内のすべての要素を聞かせて尾の位置を聞かせて)と終了位置+1チームにデータオブジェクトを生成します。この時、チームが成功しました!
3.チーム:空でない場合は、キューが空であるかどうかを判断する(フロント==リア)、などの空のヒントとしては、オブジェクトは、チームが成功し、フロント-1(後方1を移動する)前に指摘し、削除します!
ます。http://blog.csdn.net/binbin1129/article/details/5649010からの振替
<?PHP / ** * PHPキューアルゴリズム * *オン2010年6月4日作成 *著者行った事が * QQ:281 443 751 * Eメール:[email protected] ** / クラスデータ{ //データ プライベート$データ; パブリック関数の__construct (データ$){ の$ this - > = $データデータ; $データエコー。 ":!チーム<BR>に兄弟"; } パブリック関数のgetDataは(){ しますreturn $ this->データ; } パブリック関数__destruct() { 。>データを返します$ this-エコー":!<BR>へ行く兄を"; } } クラスキュー{ $前面保護; //チームのヘッド 保護さ$リア; //エンドチーム $キュー=配列( '0保護 ' => ' キューテールを'); / /ストアキュー 保護$ MAXSIZE;の//最大数 パブリック関数__construct($サイズ){ の$ this - > INITQ($サイズ); } //キュー初期化 プライベート関数INITQ($サイズ){ ;の$ this - >フロント= 0 の$ this -を= 0> REAR; の$ this - > MAXSIZE = $サイズ; } //ヌルの分析チーム 公共QIsEmpty機能(){ 返します$ this->フロント==ます$ this-> REAR; } //分析チームフル パブリック関数QIsFull( ){ リターン(の$ this - >フロントの$ this - >リア)==の$ this - > MAXSIZE; } //最初のチームデータを取得 //エンキュー パブリック関数INQ($データ){ パブリック関数getFrontDate(){ しますreturn $ this->キュー[ます$ this->フロント] - >のgetData(); } もし(の$ this - > QIsFull())$のデータをエコー":我一来咋就满了(队满不能入队、请等待!)<BR>を!";。 他の{ の$ this - >フロント++; ($ I =の$ this - >フロント;>の$ this - >リアI $、$ I - )のために{ //エコー$データ。 もし(の$ this - >キュー[$ i])と解除(の$ this - >キュー[$ i])と、 の$ this - >キュー[$ i]を=の$ this - >キュー[$ I-1]; } の$ this - >キュー【の$ this - >リア+ 1] =新データ($データ)。 //ますprint_r(の$ this - >キュー)。 //エコーの$ this - >フロント。 エコー'入队成功<BR>!'; (の$ this - > QIsEmpty()場合 ")エコーチーム<BR>を空ことができないチーム!"; this- $> front--; //ますprint_r(の$ this - >キュー); //エコーの$ this - >フロント; "!チームが成功<BR>"エコー; } } } $ qを=新しい新しいキュー(3) ; $ Q-> INQ( "苗"); $ Q-> INQ( 'マ元帥'); $ Q-> INQ( 'スケート'); $ Q-> INQ( 'チャン史家'); $ Q-> OUTQ(); $ q-で> INQ( "周Ruixiao"); $ q-で> OUTQ(); $ q-で> OUTQ(); $ q-で> OUTQ(); $ q-で> OUTQ();
このクラスキューに2つのアルゴリズムは、データが配置されているデータ・クラスであり、第2の待ち行列は、このキューのクラスがいくつかの操作がキューことです。
まず、キュー内のすべてを格納するためのフロント(キューの先頭、それはチームが外に起こっている、である)、リア(永遠に0を指し、ここでキューの末尾)が含まキューが(とき時空の前の要素があるキューのデフォルト、のようになり、データをキューに入れられました彼リアポイント)MAXSIZE(キュー長)の4つのプロパティ
アプリケーションノート:
1つのキュー初期化:リア0に初期化キューMAXSIZEとしてキューに渡されたパラメータを生成する、フロントキューのみ正面、この時点で0に設定され、後の要素を0に彼を指し
2.チーム:キューが満杯であるかどうか(前後==のMAXSIZE)、チップの完全な場合、Ruoguoはフルフロント+ 1を聞かせていないが、その後、新しいに、つまり(画像を移動する前に、キュー内のすべての要素を聞かせて尾の位置を聞かせて)と終了位置+1チームにデータオブジェクトを生成します。この時、チームが成功しました!
3.チーム:空でない場合は、キューが空であるかどうかを判断する(フロント==リア)、などの空のヒントとしては、オブジェクトは、チームが成功し、フロント-1(後方1を移動する)前に指摘し、削除します!
ます。http://blog.csdn.net/binbin1129/article/details/5649010からの振替
<?PHP / ** * PHPキューアルゴリズム * *オン2010年6月4日作成 *著者行った事が * QQ:281 443 751 * Eメール:[email protected] ** / クラスデータ{ //データ プライベート$データ; パブリック関数の__construct (データ$){ の$ this - > = $データデータ; $データエコー。 ":!チーム<BR>に兄弟"; } パブリック関数のgetDataは(){ しますreturn $ this->データ; } パブリック関数__destruct() { 。>データを返します$ this-エコー":!<BR>へ行く兄を"; } } クラスキュー{ $前面保護; //チームのヘッド 保護さ$リア; //エンドチーム $キュー=配列( '0保護 ' => ' キューテールを'); / /ストアキュー 保護$ MAXSIZE;の//最大数 パブリック関数__construct($サイズ){ の$ this - > INITQ($サイズ); } //キュー初期化 プライベート関数INITQ($サイズ){ ;の$ this - >フロント= 0 の$ this -を= 0> REAR; の$ this - > MAXSIZE = $サイズ; } //ヌルの分析チーム 公共QIsEmpty機能(){ 返します$ this->フロント==ます$ this-> REAR; } //分析チームフル パブリック関数QIsFull( ){ リターン(の$ this - >フロントの$ this - >リア)==の$ this - > MAXSIZE; } //最初のチームデータを取得 //エンキュー パブリック関数INQ($データ){ パブリック関数getFrontDate(){ しますreturn $ this->キュー[ます$ this->フロント] - >のgetData(); } もし(の$ this - > QIsFull())$のデータをエコー":我一来咋就满了(队满不能入队、请等待!)<BR>を!";。 他の{ の$ this - >フロント++; ($ I =の$ this - >フロント;>の$ this - >リアI $、$ I - )のために{ //エコー$データ。 もし(の$ this - >キュー[$ i])と解除(の$ this - >キュー[$ i])と、 の$ this - >キュー[$ i]を=の$ this - >キュー[$ I-1]; } の$ this - >キュー【の$ this - >リア+ 1] =新データ($データ)。 //ますprint_r(の$ this - >キュー)。 //エコーの$ this - >フロント。 エコー'入队成功<BR>!'; (の$ this - > QIsEmpty()の場合 )エコー"! チームは、チームの<BR>を空することはできません"; this- $> front--; //ますprint_r(の$ this - >キュー); //エコーの$ this - >フロント; "!チームが成功<BR>"エコー; } } } $ qを=新しい新しいキュー(3) ; $ Q-> INQ( "苗"); $ Q-> INQ( 'マ元帥'); $ Q-> INQ( 'スケート'); $ Q-> INQ( 'チャン史家'); $ Q-> OUTQ(); $ q-で> INQ( "周Ruixiao"); $ q-で> OUTQ(); $ q-で> OUTQ(); $ q-で> OUTQ(); $ q-で> OUTQ();