我已經創建了一個隊列類,並且我有一個隊列,並且我想將其反轉,但是當我實現該功能時,它不顯示任何內容。 這是它如何反轉隊列並將其顯示出來
void reverse(Queue <T> &queue) {
if(!queue.empty())
{
int temp=queue.queue_front;
queue.pop(queue.queue_front);
reverse(queue);
queue.push(temp);
}
}
我使用POP功能需要一個值,這就是爲什麼有queue.queue_front.I'm試圖用recursion.Here是我的打印功能做
void display() {
for(int current = queue_front+1; current < queue_length; current++)
{
cout << "[" << current << "]=" << queue_array [current] << " ";
}
}
現在這就是我在主函數
Queue <int>queue1(10);
queue1.push(16);
queue1.push(14);
queue1.push(6);
queue1.push(60);
queue1.reverse(queue1);
queue1.display();
這裏正在做年代流行功能
void pop(T& item) {
if (empty()) {
cout << "The Queue is empty!";
exit(1);
}
else {
queue_front = (queue_front + 1) % queue_size;
item = queue_array[queue_front];
queue_length--;
}
}
它不顯示任何內容。謝謝。
反向不必與遞歸因此任何方法會奏效。 – ander
temp應該是T,而不是int,因爲你需要T隊列。我沒有看到任何逆向函數的問題。 'int current = queue_front + 1'似乎是錯的,但是因爲你沒有顯示Queue的實現,它可能不是。我不喜歡pop和reverse的界面,因爲它們是成員函數,並且不需要傳入的隊列。 –
顯示器是否在不反轉它的情況下工作? –