線性結構 迴圈佇列的順序儲存實現

2021-07-23 10:01:41 字數 1709 閱讀 3289

僅供參考 有錯誤望指出

直接寫迴圈佇列

建立 入列

出列 遍歷

佇列的長度

例如清空, 銷毀….之類的操作都沒有寫

以後的有時間再補充

一次聽課,看書時, 都沒有懂, 為什麼,加那麼多 求餘的, 下面想想寫寫, ~~~>

沒有加注釋...會補上的......

------------------------

#include #include #include #define ok 1 

#define error 0

/***定義順序儲存的最大長度為 6

*雖然最大長度為 6

*但實際最大儲存量為 5

*/#define maxsize 6

typedef int status;

typedef int elemtype;

/***定義struct型別,

*沒有採用書上採用的指標型別

*/typedef struct node queue, *pqueue;

/**函式宣告 */

status createqueue(pqueue q);

status enqueue(pqueue q, elemtype e);

status deletequeue(pqueue q, elemtype *e);//為了將出列的元素的值返回, 所以這裡使用指標

void display(pqueue q);

int queuelength(pqueue q);

/**定義主函式*/

int main()

printf("對列的長度為: %d", queuelength(&q));

return

0; }

int queuelength(pqueue q)

status createqueue(pqueue q)

/*將頭指標,尾指標 都指向第乙個儲存位置*/

q->front = 0;

q->rear = 0;

return ok;

} status enqueue(pqueue q, elemtype e)

q->data[q->rear] = e;

/*rear指標向後移動 乙個位置, 若到最後, 則移動到 陣列頭部*/

q->rear = (q->rear + 1) % maxsize;

return ok;

}status deletequeue(pqueue q, elemtype *e)

*e = q->data[q->front];

q->front = (q->front+1) % maxsize;

return ok;

}/*佇列的遍歷*/

void display(pqueue q)

putchar('\n');

return ; //標誌著函式體的結束

}

有大神路過請指點一下。 菜鳥求飛 !!!

有什麼疑問 也可以在 下邊 提問 ! (有點托大了)或者發郵件

e-mail:[email protected]

佇列 順序儲存結構,迴圈佇列

為什麼小甲魚上節課說佇列的實現上我們更願意用鏈式儲存結構來儲存?我們先按照應有的思路來考慮下如何構造佇列的順序儲存結構,然後發掘都遇到了什麼麻煩。我們假設乙個佇列有n個元素,則順序儲存的佇列需建立乙個大於n的儲存單元,並把佇列的所有元素儲存在陣列的前n個單元,陣列下標為0的一端則是隊頭。no pic...

順序儲存結構的迴圈佇列

第一點 rear指向的是隊尾的下乙個元素 為了不讓rear此時指向的是front 會留個空 讓rear指向乙個空位 第二點 因為留了個空位 所以當你要插入k個元素的時候 你就要給這個順尋儲存結構陣列長度設為k 1 第三點 你在返回隊尾 計算長度等等進行加減運算 的時候都要記得取模 在返回rear的時...

佇列 迴圈佇列 的順序儲存實現

佇列的順序儲存實現 1 佇列 一端進,另一端出 佇列由兩個引數決定,front 頭 rear 尾 頭指標指向頭乙個元素,尾指標指向指向最後乙個元素的下一儲存單元 若陣列長度為n,當元素個數為n 1時就認為佇列已滿。r指向最後乙個空的元素空間。出隊 頭指標往上移動,入隊 尾指標向上移動,故 靜態佇列只...