javascript 搜索二叉树
function Tree() {
this.root = null;
}
Tree.prototype = {
constructor: Tree,
addItem: function(value) {
var Node = {
data: value,
left: null,
right: null
};
if (this.root == null) {
this.root = Node;
} else {
var current = this.root;
var parent = current;
while (current !== null) {
parent = current;
if (value < current.data) {
current = current.left;
continue; //此处easy忽略,缺少下一句if推断current.data会报错
}
if (value === current.data) {
return false;
}
if (value > current.data) {
current = current.right;
continue;
}
}
if (value < parent.data) {
parent.left = Node;
}
if (value > parent.data) {
parent.right = Node;
}
}
},
/*先序遍历*/
firstlist: function(root) {
if (root !== null) {
console.log(root.data);
this.firstlist(root.left);
this.firstlist(root.right);
}
},
/*后序遍历*/
lastlist: function(root) {
if (root !== null) {
this.lastlist(root.left);
this.lastlist(root.right);
console.log(root.data);
}
},
/*中序遍历*/
inlist: function(root) {
if (root !== null) {
this.inlist(root.left);
console.log(root.data);
this.inlist(root.right);
}
}
};
var Tree = new Tree();
Tree.addItem(5);
Tree.addItem(1);
Tree.addItem(6);
Tree.addItem(8);
Tree.addItem(7);
javascript 搜索二叉树的更多相关文章
- 【数据结构】——搜索二叉树的插入,查找和删除(递归&非递归)
一.搜索二叉树的插入,查找,删除 简单说说搜索二叉树概念: 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右 ...
- JavaScript 实现二叉树
JavaScript 实现二叉树: // JavaScript 实现二叉树 function BinaryTree () { var Node = function (key) { this.key ...
- JavaScript实现二叉树算法
二叉树的遍历方式 分别为中序遍历(左子树->当前节点->右子树).前序遍历(当前节点->左子树->右子树).后序遍历(左子树->右子树->当前节点).下面使用Jav ...
- c++ 搜索二叉树 插入,删除,遍历操作
搜索二叉树是一种具有良好排序和查找性能的二叉树数据结构,包括多种操作,本篇只介绍插入,排序(遍历),和删除操作,重点是删除操作比较复杂,用到的例子也是本人亲自画的 用到的测试图数据例子 第一.构建节点 ...
- javascript 搜索并高亮显示
2015年12月22日 15:45:08 星期二 情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者 ...
- 基于visual Studio2013解决面试题之0305广度优先搜索二叉树
题目
- Leetcode 96.不同的搜索二叉树
给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / ...
- [程序员代码面试指南]二叉树问题-找到二叉树中的最大搜索二叉树(树形dp)
题意 给定一颗二叉树的头节点,已知所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这个树的头节点. 题解 在后序遍历过程中实现. 求解步骤按树形dp中所列步骤.可能性三种:左子树最大.右子 ...
- JavaScript搜索关键字高亮的实现
高亮功能主要是指对页面中指定区域的指定文字进行高亮显示,也就是背景着色.一般在搜索结果页面会经常用到这个功能. 下面就为大家提供一种解决方案,用javascript实现. 首先在<head> ...
随机推荐
- 【12_206】Reverse Linked List
本来没想出来,刚才突然想到,可以用“头插法”来反转 Reverse Linked List My Submissions Question Total Accepted: 66556 Total Su ...
- How to configure windows machine to allow file sharing with dns alias (CNAME)
Source: http://serverfault.com/questions/23823/how-to-configure-windows-machine-to-allow-file-sharin ...
- 捉BUG记(To Catch a Bug)
大约有一年整没有写一篇博客了,由于各种原(jia)因(ban)导致闲暇时间要么拿着IPad看岛国奇怪的片(dong)子(hua).要么拿着kindle看各种各样的资(xiao)料(shuo).本来想写 ...
- 使用NHibernate(9)-- 缓存
1,对象状态. 作为基础,还是先看一下对象的状态吧.主要涉及到三个名词,瞬时.持久.托管. 瞬时态:对象刚创建,Session还不知道这个对象的存在.可以通过调用ISession的Save等方法可以转 ...
- ASP.NET Web API从注释生成帮助文档
默认情况下,ASP.NET Web API不从Controller的注释中生成帮助文档.如果要将注释作为Web API帮助文档的一部分,比如在帮助文档的Description栏目中显示方法注释中的su ...
- 尝试在Linux上编译KestrelHttpServer
Kestrel是目前在非Windows平台上运行ASP.NET 5应用程序的唯一可用Web服务器,但微软似乎将它冷落在一边,源代码更新很慢. 今天试着在Linux上编译Kestrel的源代码,遇到了很 ...
- 一起来花5分钟写一个PHP入门Demo
最近公司招了几个应届毕业生,他们对前端的了解还挺多,但是对后端的技术一无所知,我觉得,作为一个前端攻城狮,如果你有远大的抱负,就应该雨露均沾... 今天我就跟大家讲一讲PHP最基本的入门,至少别人问起 ...
- [算法] 高斯消元法 列主消元法 C++ 代码
#include<iostream> #include<cstdio> #include<iomanip> using namespace std; #define ...
- Cmd命令
write----------写字板 mspaint--------画图板 mobsync--------同步命令 eudcedit-------造字程序 dvdplay--------DVD播放器 ...
- 【原】《Git教程》学习笔记
[TOC] 1 创建版本库 1.1 初始化 初始化一个Git仓库,使用 git init 命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file> ,注意,可反 ...