数据结构第一次实验
- 输入2-20个大于0的正整数(1、2、3或者100、200、300),输入0作为结束,0不参与排列。
- 输出这几个整数的全排列,每个数之间用半角“,”隔开,中间不要有空格,每个排列单独一行。
- 程序一定要有Input、Output、End0
#include<iostream>
using namespace std;
void swap(int& a, int& b){
int temp = a;
a = b;
b = temp;
}
void relist(int list[], int low, int high) {
if (low == high) {
for (int i = 0; i <= low; i++){
cout << list[i];
if (i != low)
cout << ",";
}
cout << endl;
}
else {
for (int i = low; i <= high; i++){
swap(list[i], list[low]);
relist(list, low + 1, high);
swap(list[i], list[low]);
}
}
}
int main() {
int len = 0;
int *list;
list = new int[20];
cout << "Input" << endl;
cin >> list[len];
while (list[len] != 0) {
len = len + 1;
cin >> list[len];
}
cout << "Output" << endl;
relist(list, 0, len - 1);
cout << "end0";
return 0;
}