キューデータ構造
その他
2020-02-25 12:28:37
訪問数: null
循環キューの問題
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
1、静的キューがなぜ循環キューでなければならない 2、キューパラメータを決定するためにいくつかのサイクルを必要とする 二つのパラメータを決定するために必要な 2つのパラメータは、異なる状況において異なる意味を持ち 後フォントと 各パラメータ3、円形キューの意味 キューを初期化し、1) フォントの値はゼロであり、リア 2)、非空キュー フォントは、キューの最初の要素を表し 後、有効な最後のキュー・エレメント表す 3)、キュー空 フォントとリア等しく、必ずしもそうではないが、ゼロ 4環状擬似アルゴリズムチームのチーム含まれる 二つのステップ 1)、値が格納された位置rで表される 2)、正しい言葉遣い:R =(R + 1)アレイ%の長 書き込まエラー:R = R + 1 。5ダミーサイクルチームリストチームアルゴリズム fは=(F + 1)%配列の長 円形のキューを決定する方法を図6に示すように、空で 等しい値の前後、すなわち、キューが空Fである場合に= R 円形のキューを決定するための方法を図7に示すように、持っています完全な 二つの方法: 1、より多くのテーブル識別パラメータの増加よりも 2、第2の実施の形態にあまり一般的要素] [ 1)、F Rの値と次に、それはキューが満杯であることを示す場合 :2)、およびcは、言語擬似アルゴリズムがあることを示しIF((R&LT + 1)%の配列長== {完全に} F)他 {}不満
|
プログラムの実現
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
#含める<malloc.hを>
typedefは 構造体 //データ型の定義QUEUEを { int型 * PBASE; int型フロント; int型 REAR。
} QUEUE;
大きな柱 キューのデータ構造スパン> のボイド のinit (QUEUE *) ; BOOLの en_queue (QUEUE *、int型のVal) ; 無効 traverse_queue (QUEUE *) ; BOOL full_queue (QUEUE *) ; BOOLの out_queue (QUEUE *、INT *) ; BOOLの emput_queue (QUEUE *) ;
int型 メイン(無効) { QUEUE Q。int型のval;
init(&Q)。
en_queue(&Q、1。); en_queue(&Q、2); en_queue(&Q、3。); en_queue(&Q、4。); IF(out_queue(&Q、およびヴァル)) { printf関数は、(「成功チーム記載されているチームをデキュー要素は、次のとおり%DN "ヴァル); } 他 { のprintf("「N-デキュー失敗); } traverse_queue(&Q); 戻り0 ;
}
空 のinit (QUEUE * PQ) { pQ-> PBASE =(INT *)はmalloc(はsizeof(INT)* 6)。 pQ->フロント= 0。 pQ->リア= 0。
}
ブール full_queue (QUEUE * PQ) { もし、((pQ->リア+ 1)%6 == pQ->フロント)を返す真。それ以外のリターンはfalse ; }
ブール en_queue (QUEUE PQ *、int型のval) { 場合(full_queue(PQ)) { 戻り偽。 } 他 { pQ-> PBASE [pQ->リア] =ヴァル。 pQ->リア=(pQ->リア+ 1)%6。返す真 ; }
}
空 traverse_queue (QUEUE * PQ) { int型 I = pQ->フロント。一方、(I = pQ->リア!) { のprintf("%d個"、pQ-> PBASE [I])。 私は、(i + = 1)%6。 } }
ブール emput_queue (QUEUE * PQ) { 場合(pQ->フロント== pQ->リア) { 戻り真。 } 他 { 戻り偽。 } }
ブール out_queue (QUEUE *のpQ、 INT *をpVal) { 場合(emput_queue(PQ)) { 戻り偽。 } 他 { *をpVal = pQ-> PBASE [pQ->フロント]。 pQ->フロント=(pQ->フロント+ 1)%6。返す真 ; }
}
|
1 2
|
チームの成功は、チームの要素は、1で 、2 3
|
転載: www.cnblogs.com/lijianming180/p/12360818.html