首页 > 代码库 > 创建二叉树 树的深度搜索 广度搜索
创建二叉树 树的深度搜索 广度搜索
树的深度搜索 与树的前序遍历同理 根节点->左孩子->右孩子 树的广度搜索 与树的层次遍历同理 一层一层遍历内容
深度搜索 采用stack的适配器 先进后出原则 而广度搜索采用的queue适配器 先进先出原则 二者正好满足 搜索需求 简要代码如下:
#include <iostream> #include <stack> #include <queue> #include <malloc.h> using namespace std; typedef struct node{ char data; struct node* lchild; //结构体并未定义完全 采用struct node* 类型 struct node* rchild; node():lchild(NULL),rchild(NULL){} }*Tree; int index = 0; //全局变量 //此处采用递归创建树,传入对象为引用类型,因为在新加入的左右孩子的同时,需要保存整棵树的结构 void createtree(Tree& root,char data[]){ char e = data[index++]; if(e == ‘#‘){ root = NULL; }else{ root = new node(); root->data = http://www.mamicode.com/e;>
以上创建树的递归过程如下图分析:
只给出了一半树创建的过程,另一半创建的过程 与其一致。
最后创建完成树的图像即:
而本测试小例,产生的结果如下:
简单阐述了 树的深度,广度搜索。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。