?? queue.c
字號:
//由順序表構成的循環隊列的算法
#define MAX 10 // 最多9個元素
#define NULL -1 //失敗標志
typedef struct
{ int d[MAX] ; //用數組作為隊列的儲存空間
int front,rear ; //指示隊頭位置和隊尾位置的變量
} SEQUEUE ; //順序隊列類型定義
SEQUEUE sq ; //定義順序隊列
void INITQUEUE ( ) //初始化順序循環隊列
{
sq.front = sq.rear = MAX-1;//初始化空隊
}
int ENQUEUE (int x) //順序循環隊列的入隊算法
{ if ( sq.front == (sq.rear+1) % MAX ) //滿隊,入隊失敗
return NULL;
else { sq.rear = (sq.rear+1) % MAX; //調整隊尾變量
sq.d[sq.rear] = x ; //數據入隊
return 1 ; } //入隊成功
}
int DEQUEUE ( )//循環隊列的出隊算法
{ if (sq.front == sq.rear) //空隊,出隊失敗
return NULL;
else { sq.front = ( sq.front+1) % MAX ; //調整隊首變量
return ( sq.d[sq.front] ) ;} //返回隊首元素
}
void main ( )
{
int x;
INITQUEUE ( ); //初始化空隊
ENQUEUE (45); //調用入隊算法,45入隊
ENQUEUE (67); //調用入隊算法,67入隊
ENQUEUE (29); //調用入隊算法,29入隊
x = DEQUEUE (); //調用出隊算法,x=45
ENQUEUE (44); //調用入隊算法,44入隊
x = DEQUEUE (); //調用出隊算法,x=67
ENQUEUE (37); //調用入隊算法,37入隊
x = DEQUEUE (); //調用出隊算法,x=29
ENQUEUE (89); //調用入隊算法,89入隊
x = DEQUEUE (); //調用出隊算法,x=44
x = DEQUEUE (); //調用出隊算法,x=37
x = DEQUEUE (); //調用出隊算法,x=89
while (1) ; //在這一行設置斷點,中止程序運行,以便觀察程序運行的結果
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -