السلام عليكم
شباب انا عندي تكليف من دكتور المادة ( داتا ستركشر) عمل circular queue
الحقيقة انا سويت بس عن طريق المصفوفات وهذا هو الكود
كود:#include <iostream> #include <stdlib.h> using namespace std; class Queue { private: enum {MAX=10}; int *pArray; int back,front; int size; public: Queue(int s=MAX); ~Queue(); void enqueue(int e); int dequeue(); bool isFull(); bool isEmpty(); }; Queue::Queue(int s): size(s),back(0),front(0) { pArray=new int[s]; } Queue::~Queue() { delete [] pArray; pArray=0; } void Queue::enqueue(int e) { if(isFull()) { cout<<"\nQueue is Full"; exit(1); } back=(back+1)%size; pArray[back]=e; } int Queue::dequeue() { if(isEmpty()) { cout<<"\nQueue is Empty"; exit(1); } front=(front+1)%size; return pArray[front]; } bool Queue::isFull() { if( (back+1)%size == front ) return true; else return false; } bool Queue::isEmpty() { if( back == front ) return true; else return false; } int main() { Queue q(10); cout<<"\nenqueue(2)"; q.enqueue(2); cout<<"\nenqueue(4)"; q.enqueue(4); cout<<"\nenqueue(6)"; q.enqueue(6); cout<<"\nDequeue elements\n"; cout<<"dequeue: "<<q.dequeue()<<endl; cout<<"dequeue: "<<q.dequeue()<<endl; cout<<"dequeue: "<<q.dequeue()<<endl; return 0; }





























