執行環境:vs2015
#include
#include
#include
//-------定義-----
typedef int elemtype;
typedef int status;
//------定義常量的值
#define ok 1
#define error 0
#define true 1
#define false 0
#define overflow 0
//----------結構體-----------
typedef struct sqqueue;
//---------------介面宣告--------
status initqueue_sq(sqqueue &q, int size); //構造乙個新佇列
status destoryqueue_sq(sqqueue &q); //銷毀佇列q,q不再存在
void clearqueue_sq(sqqueue &q); //將q置為空佇列
status queueempty_sq(sqqueue q); //判斷佇列是否為空
int queuelength_sq(sqqueue q); //返回佇列q中的元素個數,即佇列的長度
status gethead_sq(sqqueue q, elemtype e); //若佇列不空,則用e返回q的佇列頭元素
status enqueue_sq(sqqueue &q, elemtype e);//在隊尾之後插入元素e,為新的隊尾元素
status dequeue_sq(sqqueue &q, elemtype &e); //出隊
//----------初始化迴圈佇列------
status initqueue_sq(sqqueue &q, int size)
//----------銷毀迴圈佇列---------
status destoryqueue_sq(sqqueue &q)
//------清空迴圈佇列------
void clearqueue_sq(sqqueue &q)
//------判斷迴圈佇列是否為空------
status queueempty_sq(sqqueue q)
//------計算佇列長度-----
int queuelength_sq(sqqueue q) else
}//----若佇列不空,則用e返回q的佇列頭元素---
status gethead_sq(sqqueue q, elemtype e)
else
}//---在隊尾之後插入元素e,為新的隊尾元素---
status enqueue_sq(sqqueue &q, elemtype e)
else
}//----出隊---
status dequeue_sq(sqqueue &q, elemtype &e)
void main()
length1 = queuelength_sq(q);
//遍歷迴圈佇列
for (int i = 0; i < length1; i++)
//出隊操作
printf("執行出隊操作,出隊3個元素:\n");
for (int i = 0; i < 3; i++)
length1 = queuelength_sq(q);
for (int i = q.front; i < q.rear; i++)
printf("執行入隊操作,入隊2個元素:\n");
for (int i = 0; i < 2; i++)
for (int i = q.front; i < q.maxsize; i++)
for (int i = 0; i < q.rear; i++)
printf("返回隊頭元素為:%d\n", gethead_sq(q, e));
}
迴圈佇列的儲存設計實現(C語言版)
1.概念 為充分利用向量空間,克服順序儲存結構的 假溢位 現象的方法是 將向量空間想象為乙個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列 circular queue 這種迴圈佇列可以以單鏈表的方式來在實際程式設計應用中來實現。迴圈佇列中,由於入隊時尾指標向前追趕頭指標 出隊...
佇列之迴圈佇列詳解(C語言版)
順序佇列在使用過程中容易出現虛假的滿狀態,為了解決這個問題,就產生了乙個較巧妙的方法,將順序佇列臆造為乙個環狀的空間,稱之為迴圈佇列。迴圈佇列中指標和佇列元素之間的關係不變,我們只需要利用模運算就可以很容易實現指標的迴圈移動。但是迴圈佇列中存在乙個問題,在迴圈佇列中只憑頭指標front等於尾指標re...
迴圈鍊錶(C語言版)
circlelinklist.h define ok 1 define error 0 typedef int status typedef int elemtype typedef struct cnode cnode typedef struct cnode clinklist status i...