У меня есть назначение, где я могу взять один стек, показать вывод, а затем отменить его, чтобы показать вывод.как перевернуть стек
Его предполагают, чтобы выглядеть следующим образом
Stack:
262 115 74 26 34 243 22 734 113 121
Stack Reversed:
121 113 734 22 243 34 26 74 115 262
Вместо шахты выходит как этот
Stack:
262 115 74 26 34 243 22 734 113 121 121 113 734 22 243 34 26 74 115 262
Stack Reversed:
Может кто-то пожалуйста, посмотрите на мой код и посмотреть, что происходит. Я пробовал немало вещей, но не могу заставить работать.
#include <stdio.h>
#include <iostream>
#include "linkedStack.h"
using namespace std;
template <class Type>
void printStack(linkedStackType<Type>& stack);
template <class Type>
void reverseStack(linkedStackType<Type>& stack);
int main(int argc, char **argv)
{
// Declare stack variables
linkedStackType<int> stack;
// Add some data to the stack
stack.push(121);
stack.push(113);
stack.push(734);
stack.push(22);
stack.push(243);
stack.push(34);
stack.push(26);
stack.push(74);
stack.push(115);
stack.push(262);
cout << "\nStack:\n ";
printStack(stack);
reverseStack(stack);
cout << "\nStack Reversed:\n ";
printStack(stack);
cout << "\n\n** Press any key to continue **\n";
getchar();
return 0;
}
template <class Type>
void printStack(linkedStackType<Type>& stack)
{
Type item;
linkedStackType<Type> tmpStack = stack;
while (stack.isEmptyStack() == false)
{
item = stack.top();
stack.pop();
cout << item << " ";
}
stack = tmpStack;
}
template <class Type>
void reverseStack(linkedStackType<Type>& stack)
{
Type item;
linkedStackType<Type> tmpStack;
while (stack.isEmptyStack() == false)
{
item = stack.top();
stack.pop();
tmpStack.push(item);
}
while (tmpStack.isEmptyStack() == false)
{
item = tmpStack.top();
tmpStack.pop();
stack.push(item);
cout << item;
}
stack = tmpStack;
return;
}
Будет очень сложно помочь вам, не имея возможности увидеть код, связанный с 'linkedStackType'. –
Не решение, но код копирует стек четыре раза. Это легко сделать до двух экземпляров. Это можно сделать только с одной копией. –
@sharth: На самом деле, хотя бы одна ошибка указана в коде, так что это меньше проблема, чем обычно. –