《数据结构、算法与应用》5.(递归输出n个元素的所有子集)
来源:互联网 发布:网络摄像头直播网站 编辑:程序博客网 时间:2024/05/16 06:55
最近在读《数据结构、算法与应用》这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢
5. 试编写一个递归函数,用来输出n 个元素的所有子集。
例如,三个元素{a, b, c} 的所有子集是: { }(空集),{ a }, { b }, { c }, { a , b}, { a , c}, {b , c} 和{a , b , c}
//// main.cpp// Test_05//// Created by cc on 14-3-31.// Copyright (c) 2014年 cc. All rights reserved.///* 5. 试编写一个递归函数,用来输出n 个元素的所有子集。例如,三个元素{a, b, c} 的所有 子集是: { }(空集),{ a }, { b }, { c }, { a , b}, { a , c}, { b , c} 和{ a , b , c} */#include <iostream>#include "vector"using namespace std;template <typename T>void calcSubSetRecursion(T* array, int lenth, vector<T> subSet);int main(int argc, const char * argv[]) { int intArray[] = {33, 22, 5}; int arrayLenth = sizeof(intArray) / sizeof(int) ; vector<int> intVector; calcSubSetRecursion(intArray, arrayLenth, intVector); cout << "-----------------------------------" << endl; char charArray[] = {'a', 'b', 'c'}; int arrayLenth2 = sizeof(charArray) / sizeof(char) ; vector<char> charVector; calcSubSetRecursion(charArray, arrayLenth2, charVector); return 0;}/** *@brief递归输出元素的子集 */template <typename T>void calcSubSetRecursion(T* array, int lenth, vector<T> subSet) { cout <<"lenth=" << lenth << endl; if (lenth <= 0) { cout << "{"; for (int i = 0; i < subSet.size(); i++) { cout << subSet[i] << ((i == subSet.size() - 1) ? "" : ","); } cout << "}" << endl; return; } //将数组的所有元素放入vector calcSubSetRecursion(array + 1, lenth - 1, subSet); //当lenth为0时,将{}放入vector subSet.push_back(array[0]); calcSubSetRecursion(array + 1, lenth - 1, subSet);}
本文由CC原创总结,如需转载请注明出处:http://blog.csdn.net/oktears/article/details/23610467
0 0
- 《数据结构、算法与应用》5.(递归输出n个元素的所有子集)
- 使用递归函数,输出n个元素的所有子集
- 使用递归函数,输出n个元素的所有子集
- 试编写一个递归函数,用来输出n 个元素的所有子集。
- 写一个递归函数,用来输出n个元素的所有子集。
- 非递归求n个元素的所有子集
- C++递归求解N个元素的所有子集
- n个元素的所有子集(递归+非递归 +不去重)
- 递归实现输出n个整数的全排列和所有子集
- 请编写一个递归函数,用来输出n个元素的所有子集。例如,三个元素{a,b,c}的所有子集是:{},{a},{b},{c},{a,c},{ac},{b,c},{a,b,c}.
- 编写一个函数,用来输出n 个元素的所有子集
- 递归算法生成n个元素的所有排列
- 笔记一:n个元素的所有排列递归算法
- hdu 2062 输出第几个子集的所有元素
- 有一个集合A,它又n个元素,请用回溯法输出它所有的子集。
- 递归-N个不相同的元素,输出所有可能的排列
- 求m个元素集合中n个元素的所有子集(C/OC)
- 列出所有K个元素的子集
- ECJTU&&JXUST 13级新生友谊赛 题解
- 必须看透的50个错觉 人生要看透而不看破!
- 在for循环体内声明的变量,每次进入循环,都不保持旧值而是重新声明
- cocos2d-x 控件之 下拉菜单列表
- 袁咏仪曝女演员求“当女友” 只为争“有词角色”
- 《数据结构、算法与应用》5.(递归输出n个元素的所有子集)
- Spring声明式事务配置管理方法
- 不要打2岁内和6岁后的孩子 父母必看
- 创新实验室实习生每周工作总结【实习第二周】
- 第七周 项目2 体验常成员函数
- C++虚函数大总结
- 产品的国内版和国际版背后的思考
- 黑马程序员—Java API(String类)
- 用动态规划求解最小编辑距离