国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

樹形結構的3中搜索方式示例分享

2020-01-26 15:35:41
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

/**
樹的3中常見搜索方式
1.二叉樹方式(每一層只有0和1)
2.滿m叉樹(每一層都有0 到m - 1)
3.子集樹,也稱為全排列樹
*/
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>

using namespace std;

const int M = 20;

int n, m;
int ans[M];
//二叉樹
void dfs_two(int cur){
 if(cur == n){
  for(int i = 0; i < n; i++){
   cout << ans[i] << " ";
  }
  cout << endl;
  return;
 }
 ans[cur] = 1;
 dfs_two(cur + 1);
 ans[cur] = 0;
 dfs_two(cur + 1);
}

//m叉樹
void dfs_m(int cur){
 if(cur == n){
  for(int i = 0; i < n; i++){
   cout << ans[i] << " ";
  }
  cout << endl;
  return ;
 }
 for(int i =0; i < n; i++){
  ans[cur] = i;
  dfs_m(cur + 1);
 }
}
bool vis[M];
//子集樹
void dfs_sub(int cur){
 if(cur == n){
  for(int i = 0; i < n; i++){
   cout << ans[i] << " ";
  }
  cout << endl;
  return;
 }
 for(int i = 0; i < n; i++){
  if(false == vis[i]){
   vis[i] = true;
   ans[cur] = i;
   dfs_sub(cur + 1);
   vis[i] = false;
  }
 }
}

int main(){

 n = 5;
 memset(ans, -1, sizeof(ans));
 memset(vis, false, sizeof(vis));
 dfs_two(0);//二叉樹搜索
 dfs_m(0);//滿m叉樹搜索
 dfs_sub(0);//子集樹搜索
 return 0;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 治多县| 建德市| 双桥区| 施甸县| 淳安县| 柘城县| 临汾市| 富平县| 漳州市| 洛隆县| 阿拉善左旗| 长岭县| 巫山县| 宁河县| 文成县| 伊吾县| 贺兰县| 丽江市| 从化市| 巴青县| 依兰县| 巩留县| 高淳县| 项城市| 彭水| 平舆县| 吉隆县| 张掖市| 泰州市| 宾川县| 紫阳县| 峨眉山市| 重庆市| 辽阳县| 兰西县| 仙游县| 禄丰县| 银川市| 禄丰县| 犍为县| 汉中市|