資料結構基礎(5)--C語言實現迴圈隊列--靜態

來源:互聯網
上載者:User

標籤:

#include<stdio.h>#include<malloc.h>#include<stdbool.h>typedef struct Queue{int * PBase;//指向數組第一個元素的指標int front;//隊列頭部元素下標int rear;//隊列尾部元素下標}QUEUE;/***初始化隊列,實現隊列的數組長度為6。**/void initQueue(QUEUE * pQ){    pQ->PBase=malloc(sizeof(int)*6);    pQ->front=0;    pQ->rear=0;}/**判斷隊列是否已滿*/bool isFull(QUEUE * pQ){if((pQ->rear+1)%6==pQ->front){    printf("隊列已滿,無法插入");    return true;}return false;}/**判斷隊列是否為空白*/bool isEmpty(QUEUE * pQ){  if(pQ->front==pQ->rear)  {      printf("隊列為空白");      return true;  }return false;  }/**入隊*/bool insert(QUEUE * pQ,int val){  if(isFull(pQ))    return false;  pQ->PBase[pQ->rear]=val;  pQ->rear=(pQ->rear+1)%6;  return true;}/**遍曆隊列*/void traverse(QUEUE * pQ){    int i=pQ->front;    while(i!=pQ->rear)    {        printf("%d  ",pQ->PBase[i]);        i++;    }    printf("\n");}/**出隊*/bool  out_queue(QUEUE * pQ){  if(isEmpty(pQ))    return false;  pQ->front=(pQ->front+1)%6;}int main(){QUEUE Q;initQueue(&Q);insert(&Q,1);insert(&Q,2);insert(&Q,3);insert(&Q,4);insert(&Q,5);insert(&Q,6);traverse(&Q);out_queue(&Q);traverse(&Q);return 0;}

涉及的知識點講解見上一篇文章:http://blog.csdn.net/davidluo001/article/details/46596553

關鍵:1.少用一個位置,用於區分隊列是空還是滿.








資料結構基礎(5)--C語言實現迴圈隊列--靜態

聯繫我們

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