另外我們可以再用一個棧來實現棧的升序排列。
優先隊列:
//優先隊列來實現 void sortStack(std::stack& vStk) { std::priority_queue , std::greater > Queue; while (!vStk.empty()) { Queue.push(vStk.top()); vStk.pop(); } while (!Queue.empty()) { vStk.push(Queue.top()); Queue.pop(); } }
//附加一個棧來實現 void sortStack_(std::stack& vStk) { std::stack Tmp; while (!vStk.empty()) { int Top = vStk.top(); vStk.pop(); while (!Tmp.top() && Top < Tmp.top()) { vStk.push(Tmp.top()); Tmp.pop(); } Tmp.push(Top); } }