加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

队列C++ | 用数组实现队列_1

发布时间:2020-12-15 04:53:47 所属栏目:百科 来源:网络整理
导读:用数组实现队列 /* Queue - Circular Array implementation in C++*/ #include using namespace std; #define MAX_SIZE 101 //maximum size of the array that will store Queue. // Creating a class named Queue. class Queue { private: int A[MAX_SIZE];

用数组实现队列

/* Queue - Circular Array implementation in C++*/

#include

using namespace std;

#define MAX_SIZE 101 //maximum size of the array that will store Queue.

// Creating a class named Queue.

class Queue

{

private:

int A[MAX_SIZE];

int front,rear;

public:

// Constructor - set front and rear as -1.

// We are assuming that for an empty Queue,both front and rear will be -1.

Queue()

{

front = -1;

rear = -1;

}

// To check wheter Queue is empty or not

bool IsEmpty()

{

return (front == -1 && rear == -1);

}

// To check whether Queue is full or not

bool IsFull()

{

return (rear+1)%MAX_SIZE == front ? true : false;

}

// Inserts an element in queue at rear end

void Enqueue(int x)

{

cout<<"Enqueuing "<

if(IsFull())

{

cout<<"Error: Queue is Fulln";

return;

}

if (IsEmpty())

{

front = rear = 0;

}

else

{

rear = (rear+1)%MAX_SIZE;

}

A[rear] = x;

}

// Removes an element in Queue from front end.

void Dequeue()

{

cout<<"Dequeuing n";

if(IsEmpty())

{

cout<<"Error: Queue is Emptyn";

return;

}

else if(front == rear )

{

rear = front = -1;

}

else

{

front = (front+1)%MAX_SIZE;

}

}

// Returns element at front of queue.

int Front()

{

if(front == -1)

{

cout<<"Error: cannot return front from empty queuen";

return -1;

}

return A[front];

}

/*

Printing the elements in queue from front to rear.

This function is only to test the code.

This is not a standard function for Queue implementation.

*/

void Print()

{

// Finding number of elements in queue

int count = (rear+MAX_SIZE-front)%MAX_SIZE + 1;

cout<<"Queue : ";

for(int i = 0; i

{

// Index of element while travesing

int index = (front+i) % MAX_SIZE; circularly from front

cout<

}

cout<<"nn";

}

};

int main()

{

/*Driver Code to test the implementation

Printing the elements in Queue after each Enqueue or Dequeue

*/

Queue Q; // creating an instance of Queue.

Q.Enqueue(2); Q.Print();

Q.Enqueue(4); Q.Print();

Q.Enqueue(6); Q.Print();

Q.Dequeue(); Q.Print();

Q.Enqueue(8); Q.Print();

}

编程中最没用的东西是源代码,最有用的东西是算法和数据结构。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读