问题描述
- c++数据结构快速排序用栈实现
-
已知快速排序的部分代码如下,勿改动,请利用栈实现快速排序非递归函数:void QuickSort(); //quickSort
#include
using namespace std;
const int MaxSize=100;
class List
{
private:
int r[MaxSize+1];
int n;
public:
List(){n=0;} //empty list
void InsertR(int k) //表尾插入
{ r[++n]=k;}
void Display(); //display
void QuickSort(); //quickSort
};void List::Display()
{
for(int i=1;i<=n;i++)
cout<
cout
}
int main()
{
List L;
while(1)
{
int k;
cin>>k;
if(!k) break;
L.InsertR(k);
}
L.Display();
L.QuickSort();
L.Display();
return 0;
}
Input
Output
Sample Input
12 21 32 2 4 24 21 432 23 9 0
Sample Output
12 21 32 2 4 24 21 432 23 9
2 4 9 12 21 21 23 24 32 432
解决方案
参考:http://blog.sina.com.cn/s/blog_6f24ba210100mr13.html
解决方案二:
递归的代码已经写出来了 轴值的问题怎么处理
解决方案三:
递归转栈主要就是把中间节点一个个放入栈格式的数据结构,然后再对应的pop出来处理。
时间: 2024-10-22 11:35:43