国产探花免费观看_亚洲丰满少妇自慰呻吟_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;
}

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

圖片精選

主站蜘蛛池模板: 宁陕县| 安陆市| 抚远县| 绥宁县| 巴东县| 余姚市| 临漳县| 丹凤县| 甘德县| 东平县| 兴城市| 盈江县| 图木舒克市| 凌海市| 阜阳市| 麻城市| 大丰市| 搜索| 峨山| 温宿县| 广东省| 宜丰县| 赞皇县| 丰都县| 云霄县| 刚察县| 黄浦区| 潮州市| 会东县| 平陆县| 五莲县| 泰宁县| 三明市| 平山县| 固阳县| 庆城县| 和龙市| 徐水县| 普兰店市| 舒城县| 台东市|