用递归方式实现二叉树查找算法

来源:互联网 发布:恢复u盘数据哪个软件好 编辑:程序博客网 时间:2024/06/06 07:03

二叉树就是一种数据结构, 它的组织关系就像是自然界中的树一样。官方语言的定义是:是一个有限元素的集合,该集合或者为空、或者由一个称为根的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。

二叉树的存储方式有两种:顺序存储、链式存储.


递归构建二叉树

创建二叉树的节点对象:

var characters = ['A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];function Node() {    this.text='';    this.leftChild = null;    this.rightChild = null;}function buildTree(node, i) {    var leftIndex = 2i+1;    var rightIndex = 2i+2;    if(leftIndex<characters.length) {        // 有左子树        // 创建一个新节点        let childNode = new Node();        // 新节点文本        childNode.text = characters[leftIndex];        //将新节点赋给左子树        node.leftChild = childNode;        // 递归得到左子树        buildTree(childNode, leftIndex);    }    if(rightIndex<characters.length) {        // 有右子树        // 创建一个新节点        let childNode = new Node();        // 新节点文本        childNode.text = characters[rightIndex];        //将新节点赋给右子树        node.rightChild = childNode;        // 递归得到右子树        buildTree(childNode, rightIndex);    }}var node = new Node(); // 实例化根节点node.text = characters[0]; // 根节点文本buildTree(node,0);  // 创建二叉树,0表示索引

时间复杂度为? 不知道啊
构建完二叉树的基本结构后,我们开始进入二叉树最基本的遍历
遍历有三种:前序遍历、中序遍历、后序遍历

阅读全文
0 0