// myque2.h -- queue class by tsaiwn@csie.nctu.edu.tw // g++ -c myque2.cpp // g++ testmyq2.cpp myque2.o #ifndef __MYQUE2__ #define __MYQUE2__ class MyQueue { enum{ NELEMENT=99 }; // good habit long data[NELEMENT]; int phead, ptail; // phead 指向 queue 的前頭, ptail指向尾巴 void initQueue(void){ phead = ptail = 0; } public: MyQueue(void) { initQueue( ); } void enque(long); long deque(void); long front(void) { return data[phead]; } int isempty(void) { return (phead == ptail) ;} int isfull(void) { return ((ptail+1) % NELEMENT) == phead; } ////// ////// 注意 circular queue 的表達方式 void push(long x) { enque(x); } long pop(void) { return deque( ); } long top(void) { return front( ); } int empty(void) { return isempty( );} int full(void) { return isfull( );} }; // class MyQueue ////// ////// ////// #endif