求集合的幂集
2012-06-03 01:42
246 查看
集合的幂集A = { 1, 2, 3}, 则A的幂集为:{{1, 2, 3}, {1, 2}, {1, 3}, {2, 3} ,{ 2} ,{3} ,Φ}。对于求A集合的幂集,A中的元素它只有两中状态,它或属于幂集的元素集,或者不属于幂集的元素集。求幂集的过程可以看成是对A中元素进行“取”或“舍”的过程。状态树如下:叶子节点表示终结状态,而第i层的分支节点,则表示已对集合A中前i-1个元素进行了取/舍处理的状态。求幂集的过程即为先序遍历这可状态树的过程。
实现代码:
实现代码:
#include<iostream> #include<string> #include<vector> using namespace std; void GetPowerSet(int i, vector<int> va, vector<int> &vb) { if (i >= va.size() ) { for (vector<int>::const_iterator iter = vb.begin(); iter != vb.end(); iter++) { cout << *iter << " "; } if (vb.size() == 0) cout << "空集" ; cout << endl; } else { int x = va[i]; vb.push_back(x); GetPowerSet(i + 1, va, vb); vb.pop_back(); GetPowerSet(i + 1, va, vb); } } int main(int argc, char **argv) { vector<int> va; vector<int> vb; va.push_back(1); va.push_back(2); va.push_back(3); GetPowerSet(0, va, vb); system("pause"); return 0; }
相关文章推荐
- C语言 回溯---转非递归---- 输出集合{1,2,...n}的幂集
- 求集合的幂集
- 求含有n个元素的集合的幂集
- 回溯法求集合的幂集
- 打印一个集合的幂集C++实现
- 输出集合的所有子集(幂集)-C语言
- 求含n个元素的集合的幂集
- c++求集合幂集 源代码及算法优化
- 集合的幂集
- 求集合的幂集
- 回溯法之求n个集合的幂集
- 巧用二叉树原理求解集合的幂集
- 集合的幂集(C++)
- 解 :求有n个 元素的集合的幂集
- javascript实现数据结构: 树和二叉树的应用--最优二叉树(赫夫曼树),回溯法与树的遍历--求集合幂集及八皇后问题
- C语言 集合运算 并、交,相对补,对称差,判断两个集合是否相等,求集合幂集
- C语言获取集合幂集
- 求集合的幂集【转】
- 二进制方法 解 集合的幂集
- 回溯法学习---求集合的幂集