迴圈隊列的基本操作

來源:互聯網
上載者:User

標籤:nbsp   sizeof   初始化   exit   ini   儲存   overflow   erro   入隊   

 1 //迴圈隊列基本操作  2 #define MAXSIZE 100 3 Typedef struct{ 4     QElemType *base; 5     int front; 6     int rear; 7 }SqQueue; 8  9 //隊列的初始化10 Status InitQueue(SqQueue &Q){11     Q.base=(QElemType *)malloc(MAXSIZE*sizeof(QElemType));12     if(!Q.base) exit(OVERFLOW);13     Q.front=Q.rear;14     return OK;15 } 16 //求隊列的長度17 int QueueLength(SqQueue Q){18     return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;19 } 20 //迴圈隊列入隊21  Status EnQueue(SqQueue &Q,QElemType e){22      if((Q.rear+1)%MAXSIZE==Q.front)    return ERROR;    //隊滿 23      Q.base[Q.rear]=e;    //新元素入隊尾 24      Q.rear=(Q.rear+1)%MAXSIZE;    //隊尾指標+1 25      return OK;26  }27  //迴圈隊列出隊28 Status DeQueue(SqQueue &Q,QElemType &e){29     if(Q.front==Q.rear)  return ERROR;    //隊空30     e=Q.base[Q.front];    //儲存隊頭元素 31     Q.front=(Q.front+1)%MAXSIZE;    //隊頭指標+1 32     return OK;33 }34 //取隊頭元素35 SElemType GetHead(SqQueue Q){36     if(Q.front!=Q.rear)    //隊列不為空白 37         return Q.base[Q.front];    //返回隊頭指標元素的值,隊頭指標不變 38 } 

 

迴圈隊列的基本操作

聯繫我們

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