資料結構隊列執行個體

來源:互聯網
上載者:User

標籤:include   執行個體   資料結構   size   val   print   利用   如何   初始化   

  1 //資料結構 --隊列  2 //靜態隊列-用數組實現  3 //靜態隊列通常是迴圈隊列  4 //迴圈隊列講解  5 //1.靜態隊列為什麼必須是迴圈隊列?  6 //2.迴圈隊列需要幾個參數來確定?  7 /*  8     front 和 rear  9     1)隊列初始化,font和rear的值都為零 10     2)隊列非空    11         font代表的是隊列的第一個元素 12         rear代表的是隊列的最後一個有效元素的下一個元素 13     3)隊列空 14         front和rear值 15 */ 16 //3.迴圈隊列各個參數的含義? 17 //4.如何判斷迴圈隊列是否為空白? 18 /* 19     front與rear值相等,則該隊列就一定為空白; 20 */ 21 //5.如何判斷迴圈隊列是否已滿? 22 /* 23 1)利用標誌參數來判定是否已滿; 24 2)少用一個元素 25 if((r+1)%數組長度==f) 26     已滿; 27 else 28     不滿; 29 */ 30 //6.迴圈隊列入隊偽演算法講解 31 #include <stdio.h> 32  33 typedef struct Queue 34 { 35     int *pBase; 36     int front; 37     int rear; 38 }QUEUE; 39  40 void init(QUEUE*); 41 bool en_queue(QUEUE*, int val); 42 void traverse_queue(QUEUE); 43 bool out_queue(QUEUE*, int *); 44 bool empty_queue(QUEUE* pQ); 45  46 int main(void) 47 { 48     QUEUE Q; 49     en_queue(&Q, 1); 50     en_queue(&Q, 1); 51     en_queue(&Q, 1); 52     init(&Q); 53     return 0; 54 } 55  56 void init(QUEUE *pQ) 57 { 58     pQ->pBase = (int*)malloc(sizeof(int)*6); 59     pQ->front = 0; 60     pQ->rear = 0; 61 } 62  63 bool en_queue(QUEUE* pQ, int val) 64 { 65     if (full_queue(pQ)) 66     { 67         return false; 68     } 69     else 70     { 71         pQ->pBase[pQ->rear] = val; 72         pQ->rear = (pQ->rear + 1)%6; 73         return true; 74     } 75 } 76  77 bool full_queue(QUEUE *pQ) 78 { 79     if (pQ->front == (pQ->rear + 1) % 6) 80     { 81         return true; 82     } 83     else 84     { 85         return false; 86     } 87 } 88  89 void traverse_queue(QUEUE *pQ) 90 { 91     int i = pQ->front; 92     while (i != pQ->rear) 93     { 94         printf("%d",pQ->pBase[i]); 95         i = (i + 1) % 6; 96     } 97     return; 98 } 99 100 bool empty_queue(QUEUE *pQ)101 {102     if (pQ->rear == pQ->front)103     {104         return true;105     }106     else107     {108         return false;109     }110 }111 112 bool out_queue(QUEUE*pQ, int* pVal)113 {114     if (empty_queue(pQ))115     {116         return false;117     }118 119     int i = 0;120     while (i != pQ->rear)121     {122         *pVal = pQ->pBase[pQ->front];123         pQ->front = (pQ->front + 1) % 6;124     }125     return true;126 }127 128 //隊列的具體應用:所有和時間有關的都與隊列有關

 

資料結構隊列執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.