迴圈佇列的實現(C語言版)

2021-07-26 18:50:52 字數 2051 閱讀 5926

執行環境: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...