用栈实现插入排序时,我们先将存放该数据的栈排序到另一个栈中,最后在将另外一个栈的内容倒放到当前栈中。图如下:
实现:
#pragma once
template <typename E> class AStack {
private:
int maxSize; // Maximum size of stack
int top; // Index for top element
E *listArray; // Array holding stack elements
public:
AStack(int size = 20) // Constructor
{
maxSize = size; top = 0; listArray = new E[size];
}
~AStack() { delete[] listArray; } // Destructor