1. 程式人生 > >普通陣列實現簡單的順序佇列

普通陣列實現簡單的順序佇列

該方法的優點:實現簡單。

該方法的缺點:會造成front前的陣列空間無法再次被利用。

改進方法:使用迴圈陣列(見下篇)

注意:結構體型別的變數作為函式引數時,傳遞方式是值傳遞或者引用傳遞關係到在函式中對結構體變數內的變數的值的修改是否會生效。

#include<iostream> using namespace std; struct Queue {     int arr[5];     int front=-1;     int rear=-1;     } ; void Push(Queue *q,int val) {     if(q->front==q->rear&&q->rear!=-1)         cout<<"Empty!"<<endl;     else if(q->rear==sizeof(q->arr)/sizeof(int))         cout<<"Full!"<<endl;     else     {         q->rear++;         q->arr[q->rear]=val;     } } void Delete(Queue *q) {     if(q->front==q->rear)         cout<<"Empty!"<<endl;     else         q->front++; } void print(Queue *q) {     if(q->front==q->rear)         cout<<"Empty!"<<endl;     else     {         for(int i=q->front;i<=q->rear;i++)             cout<<q->arr[i]<<" ";     } } int main() {     Queue q;     int t[]={1,2,3,4,5};     for(int i=0;i<5;i++)         Push(&q,t[i]);     cout<<q.front<<" "<<q.rear<<endl;     print(&q);     cout<<endl;     for(int i=0;i<5;i++)         Delete(&q);     cout<<q.front<<" "<<q.rear<<endl;     print(&q);     return 0; }