배열을 사용하여 큐를 구현하려고합니다.배열을 사용하여 큐에 넣기 >> 팝핑 후 요소 이동
#include <iostream.h>
#define SIZE 5
class queue
{
int *Queue, front, rear;
public:
queue() {
Queue = new int[SIZE];
front = rear = -1;
}
void push() {
if (rear == (SIZE-1)) {
cout<<"\n Overflow!";
} else {
rear++;
cout<<"\n Enter element: ";
cin>>Queue[rear];
}
}
void pop() {
if (front == rear) {
cout<<"\n Underflow!";
} else {
cout<<"\nElement popped: "<<Queue[++front];
}
}
void display() {
if (front == rear) {
cout<<"\n Queue Empty";
} else {
for(int i = (front+1); i<=rear; i++) {
cout<<Queue[i]<<" ";
}
}
}
};
int main()
{
int choice;
queue q;
while(choice != 4)
{
cout<<"\n\n Enter your choice :"
<<"\n 1. Push an element into Queue."
<<"\n 2. Pop an element from Queue."
<<"\n 3. Display the Queue."
<<"\n 4. Exit the program.\n\n";
cin>>choice;
switch (choice) {
case 1:
q.push();
break;
case 2:
q.pop();
break;
case 3:
q.display();
break;
case 4:
break;
}
}
return 0;
}
것은이 오버 플로우가 충족되면, 심지어 요소 터지는 후 후면이 동일하게 유지하고 갈 수있는 빈 공간이있을 때 다른 요소가 추가되지 않는 것입니다 : 여기 내 코드입니다.
이 해결책은 모든 요소를 한 자리 앞으로 옮겨서 끝에 빈 자리가 있지만 교대로 문제가 있습니다. 또한 오버플로에 도달하기 전에 2-3 번 터진 후 삽입하려고하면 대기열에 요소가 3 개 밖에없는 경우에도 여전히 오버플로가 발생합니다. 어떻게 해결할 수 있습니까?
들여 쓰기를 수정하려면 글을 수정하십시오. 스택 오버플로에서 들여 쓰기에 공백을 사용하십시오 (실제 코드가 아님에도 불구하고!) –
thry about sry .. – maddy
무엇이 ''입니까? –