(郝斌講學)資料結構學習篇(五)---隊列的CRUD操作

來源:互聯網
上載者:User

標籤:資料結構   隊列   

隊列

 

什麼是隊列?

一種可以實現“先進先出”的儲存結構。

 

出隊  入隊  -->>隊列

出棧  壓棧  -->>棧

 

鏈式隊列 ---用鏈表實現的

靜態隊列 ---用數組實現的

靜態隊列通常必須是迴圈隊列..

 

039.迴圈隊列需要幾個參數來確定極其含義的講解

front代表的是隊列的第一個元素

rear代表的是隊列的最後一個有效元素的下一個元素

 

隊列為空白:

front和rear的值相等,但不一定為零

隊列初始化

front和rear的值都是零.

 

迴圈隊列入隊的偽演算法

1)將入隊的值存入r所代表的位置

2)r=(r+1)%數組的長度

迴圈隊列出隊的偽演算法

1)將出隊的值存入f所代表的位置

2)f=(f+1)%數組的長度

 

判斷隊列是否已滿

if((r+1)%數組的長度 == f)

已滿

else

不滿

 

隊列的具體操作

#include <stdio.h>#include <malloc.h>/** * *隊列的建立...等操作 * */typedef struct Queue{int * pBase;int front;int rear;}QUEUE;void init(QUEUE *);bool en_queue(QUEUE *, int val);void traverse_queue(QUEUE *);bool full_queue(QUEUE *);bool empty_queue(QUEUE *);bool out_queue(QUEUE *, int *);int main(void){Queue q;int val;init(&q);en_queue(&q, 1);en_queue(&q, 2);en_queue(&q, 3);en_queue(&q, 4);en_queue(&q, 5);en_queue(&q, 6);en_queue(&q, 7);traverse_queue(&q);if(out_queue(&q, &val)){printf("出隊成功,出隊的元素是 %d \n", val);}else{printf("出隊失敗");}traverse_queue(&q);return 0;}void init(QUEUE *PQ){PQ->pBase = (int *)malloc(sizeof(int)*6);PQ->front = 0;PQ->rear = 0;}bool full_queue(QUEUE * PQ){if((PQ->rear + 1)%6 == PQ->front)return true;elsereturn false;}bool en_queue(QUEUE * PQ, int val){if(full_queue(PQ)){return false;}else{PQ->pBase[PQ->rear] = val;PQ->rear = (PQ->rear +1 )%6;return true;}}void traverse_queue(QUEUE *PQ){int i = PQ->front;while(i != PQ->rear){printf("%d ", PQ->pBase[i]);i = (i+1)%6;}printf("\n");return;}bool empty_queue(QUEUE *PQ){if(PQ->front == PQ->rear)return true;elsereturn false;}bool out_queue(QUEUE *PQ, int *pVal){if(empty_queue(PQ)){return false;}else{*pVal = PQ->pBase[PQ->front];PQ->front = (PQ->front +1)%6;return true;}}

(郝斌講學)資料結構學習篇(五)---隊列的CRUD操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.