二叉树的添加与查找

添加:

添加的时候可以用数组,循环添加,我是一步一步测试方便,才一个一个添加。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 <script>
 7 var root=null;
 8 function bt_add(node,n){
 9     if(node==null){
10         alert(‘没有根节点把‘+n+‘当成根节点‘);
11         node={
12             value:n,
13             l:null,
14             r:null
15         };
16     }else{
17         if(node.value==n){
18             return;
19         }else if(node.value<n){
20             alert(‘试图往右走‘);
21             node.r=bt_add(node.r,n);
22         }else{
23             alert(‘试图往左走‘);
24             node.l=bt_add(node.l,n);
25         }
26     }
27     return node;
28 }
29 root=bt_add(root,50);
30 root=bt_add(root,35);
31 root=bt_add(root,60);
32 root=bt_add(root,21);
33 root=bt_add(root,45);
34 root=bt_add(root,55);
35 root=bt_add(root,70);
36 </script>
37 </head>
38 <body>
39
40 </body>
41 </html>

查找:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 <script>
 7 var root=null;
 8 function bt_add(node,n){
 9     if(node==null){
10         node={
11             value:n,
12             l:null,
13             r:null
14         };
15     }else{
16         if(node.value==n){
17             return;
18         }else if(node.value<n){
19             node.r=bt_add(node.r,n);
20         }else{
21             node.l=bt_add(node.l,n);
22         }
23     }
24     return node;
25 }
26 function bt_find(node,n){
27     if(node==null){
28         return false;
29     }else{
30         if(node.value==n){
31             return true;
32         }else if(node.value<n){
33             return bt_find(node.r,n);
34         }else{
35             return bt_find(node.l,n);
36         }
37     }
38 }
39 root=bt_add(root,50);
40 root=bt_add(root,35);
41 root=bt_add(root,60);
42 root=bt_add(root,21);
43 root=bt_add(root,45);
44 root=bt_add(root,55);
45 root=bt_add(root,70);
46 alert(bt_find(root,5));
47 </script>
48 </head>
49 <body>
50
51 </body>
52 </html>
时间: 2024-08-10 15:11:40

二叉树的添加与查找的相关文章

二叉树,添加,查找

public class Tree { TreeNode last = null; TreeNode root = null; public Tree(int value){ root = createNode(value); } //结构 static class TreeNode{ int data; TreeNode left; TreeNode right; } //查找结点 public boolean searchTreeNode(int key,TreeNode tree){ if

关于eclipse添加自动查找文件以及svn的插件

1.添加自动查找当前文件位置的插件(如下图) 在百度搜索下载 OpenExplorer_1.5.0.v201108051313.jar,下载之后放入eclipse下面的plugin文件夹下面既可以 2.svn插件 同样的在网上下载好svn插件文件,进行解压,  然后就eclipse文件夹下dropins里面关于svn的插件全部删除  然后将下载后的插件包解压放入文件,重启eclipse即可, 当然可能会遇到错误,由于文件夹多一级的原因,此处参考 如下 http://blog.csdn.net/t

数据结构开发(23):二叉树中结点的查找、插入、删除与清除操作

0.目录 1.二叉树中结点的查找操作 2.二叉树中结点的插入操作 3.二叉树中结点的删除操作 4.二叉树中结点的清除操作 5.小结 1.二叉树中结点的查找操作 查找的方式: 基于数据元素值的查找 BTreeNode<T>* find(const T& value) const 基于结点的查找 BTreeNode<T>* find(TreeNode<T>* node) const 树中数据元素和结点的查找: 基于数据元素值的查找: 定义功能:find(node,

日常学习随笔-用链表的形式实现普通二叉树的新增、查找、遍历(前、中、后序)等基础功能(侧重源码+说明)

一.二叉树 1.二叉树的概念 二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree),其次序不能任意颠倒. 2.性质 (1)若二叉树的层次从0开始,则在二叉树的第i层至多有2^i个结点(i>=0): (2)高度为k的二叉树最多有2^(k+1) - 1个结点(k>=-1). (空树的高度为-1): (3)对任何一棵二叉树,如果其叶子结点(度为0)数为m, 度为2的结点数为n,

腾讯大牛教你如何使用Java实现二叉树的添加,删除,获取以及遍历

一段来自百度百科的对二叉树的解释: 在计算机科学中,二叉树是每个结点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被用于实现二叉查找树和二叉堆. 一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树.这种树的特点是每一层上的节点数都是最大节点数.而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树.具有n个节

二叉树各种相关操作(建立二叉树、前序、中序、后序、求二叉树的深度、查找二叉树节点,层次遍历二叉树等)(C语言版)

将二叉树相关的操作集中在一个实例里,有助于理解有关二叉树的相关操作: 1.定义树的结构体: 1 typedef struct TreeNode{ 2 int data; 3 struct TreeNode *left; 4 struct TreeNode *right; 5 }TreeNode; 2.创建根节点: 1 TreeNode *creatRoot(){ 2 TreeNode * root =(TreeNode *)malloc(sizeof(TreeNode)); 3 if(NULL=

算法-单词的添加和查找

今天遇到了一道字典树的题,这是我第一次使用字典树来解决问题,所以我觉得还是有必要记录下来. 题意: 设计一个包含下面两个操作的数据结构:addWord(word), search(word) addWord(word)会在数据结构中添加一个单词.而search(word)则支持普 通的单词查询或是只包含.和a-z的简易正则表达式的查询. 一个 . 可以代表一个任何的字母. 样例: addWord("bad") addWord("dad") addWord("

二叉树(12)----查找两个节点最低祖先节点(或最近公共父节点等),递归和非递归

1.二叉树定义: typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; typedef struct BTreeNode_t_ { BTreeNodeElement_t *m_pElemt; struct BTreeNode_t_ *m_pLeft; struct BTreeNode_t_ *m_pRight; } BTreeNode_t; 2.查找二叉树中两个节点的最低祖先节点(或最近公共父节点等) 最低祖

Lintcode---单词的添加与查找

设计一个包含下面两个操作的数据结构:addWord(word), search(word) addWord(word)会在数据结构中添加一个单词.而search(word)则支持普通的单词查询或是只包含.和a-z的简易正则表达式的查询. 一个 . 可以代表一个任何的字母. 注意事项 你可以假设所有的单词都只包含小写字母 a-z. 您在真实的面试中是否遇到过这个题? Yes 样例 addWord("bad") addWord("dad") addWord("