- 浏览: 718042 次
- 性别:
- 来自: 嘉兴
文章分类
- 全部博客 (386)
- Struts1.1 (2)
- Database (18)
- Core Java (15)
- Log4j (4)
- SSH (0)
- Dao (1)
- Architecture Design (1)
- References (2)
- Eclipse&MyEclipse (10)
- Hibernate (7)
- Spring (8)
- JavaMail (1)
- Data Structure And Algorithm (48)
- Struts 2 (2)
- SSI (1)
- SSL (2)
- JSTL (1)
- EJB3 (2)
- NET (2)
- XML (2)
- Components (2)
- Ant (3)
- Multi Thread (1)
- Performance Monitoring (1)
- Web Server (17)
- Oracle (1)
- jQuery (8)
- Regular Expression (1)
- Weblogic (1)
- Exception (1)
- Security (2)
- File Manipulation (1)
- JavaScript (12)
- JVM (2)
- HTML&DIV&CSS (4)
- Android (10)
- Beyond GFW (0)
- Business (0)
- SVN (6)
- 虚拟主机 (1)
- Virtual Host (3)
- My mentality (5)
- OS (15)
- ISPMP (3)
- Magento (5)
- Jsoup&HttpClient (7)
- LINUX (9)
- Database Design (0)
- Power Designer (1)
- TaobaoOpenPlatform (2)
- C/C++ (3)
- Maven (11)
- Quartz (1)
- Load Balance (1)
- Zabbix (4)
- Product&Business (1)
- Pay Interface (1)
- Tomcat (2)
- Redis (1)
- 集群 (1)
- Session (1)
- 共享Session (1)
- Jedis (1)
- jenkins (1)
- 持续集成 (1)
- Web前端 (1)
最新评论
-
aqq331325797:
特意注册账号上来说一句。牛逼!
swagger2.2.2 与 spring cloud feign冲突 -
KitGavinx:
跨顶级域名怎么保持sessionid一致?
Tomcat7集群共享Session 基于redis进行统一管理 -
jaychang:
dujianqiao 写道HI ,能否给一个完整的demo 啊 ...
淘宝订单同步方案 - 丢单终结者 -
GGGGeek:
找了一会儿,感觉mybatis应该没有这种操作,直到发现博主的 ...
mybatis collection list string -
dujianqiao:
HI ,能否给一个完整的demo 啊 ?
淘宝订单同步方案 - 丢单终结者
/**
* @title: 二叉树遍历,求深度
* @author: Jay Chang
* @version: ver 1.0
* @date: 2009.7.25
*/
import java.util.Scanner;
/*二叉树的结点的定义*/
class BiTreeNode
{
private String nodeName;
private int value;
/*没有解决好lChild,rChild两个属性的封装,存在些问题,不知道为什么,有待改进*/
public BiTreeNode lChild;
public BiTreeNode rChild;
public BiTreeNode(){}
/*创建结点对象的构造器*/
public BiTreeNode(String nodeName,int value)
{
this.nodeName=nodeName;
this.value=value;
this.lChild=null;
this.rChild=null;
}
/*setName,getName,setValue,getValue,是对结点两个属性的封装 */
public void setName(String nodeName)
{
this.nodeName=nodeName;
}
public String getName()
{
return nodeName;
}
public void setValue(int value)
{
this.value=value;
}
public int getValue()
{
return this.value;
}
}
/*二叉树类定义*/
class BiTree
{
private BiTreeNode root;
public BiTree(){}
public BiTreeNode getRoot()
{
return this.root;
}
public void create()
{
this.root=createBiTree(this.root);
}
/*递归创建二叉树*/
private BiTreeNode createBiTree(BiTreeNode node)
{
String name;int value;
Scanner sc=new Scanner(System.in);
System.out.println("输入结点名称及值:");
name=sc.next();value=sc.nextInt();
if(name!="#"&&value!=-1){
node =new BiTreeNode(name,value);
node.lChild=createBiTree(node.lChild); //node.lChild和node.rChild本应使用封装,但是不能用?
node.rChild=createBiTree(node.rChild);
return node;
}else{
return null;
}
}
/*求二叉树的高度*/
public int getDepth(BiTreeNode node)
{
int lDepth,rDepth;
if(node==null){
return 0;
}
lDepth=getDepth(node.lChild);
rDepth=getDepth(node.rChild);
return (lDepth>rDepth?lDepth:rDepth)+1;
}
/*先序遍历二叉树*/
public void fTraverse(BiTreeNode node)
{
if(node!=null){
System.out.println("Node Name:"+node.getName()+" Node Value:"+node.getValue());
fTraverse(node.lChild);
fTraverse(node.rChild);
}else{
return;
}
}
/*中序遍历二叉树*/
public void mTraverse(BiTreeNode node)
{
if(node!=null){
mTraverse(node.lChild);
System.out.println("Node Name:"+node.getName()+" Node Value:"+node.getValue());
mTraverse(node.rChild);
}else{
return;
}
}
/*后序遍历二叉树*/
public void lTraverse(BiTreeNode node)
{
if(node!=null){
lTraverse(node.lChild);
lTraverse(node.rChild);
System.out.println("Node Name:"+node.getName()+" Node Value:"+node.getValue());
}else{
return;
}
}
}
public class TestBiTree
{
public static void main(String[] args)
{
BiTree biTree=new BiTree();
biTree.create();
System.out.println("先序遍历:");
biTree.fTraverse(biTree.getRoot());
System.out.println("中序遍历:");
biTree.mTraverse(biTree.getRoot());
System.out.println("后序遍历:");
biTree.lTraverse(biTree.getRoot());
System.out.println("二叉树的高度:");
System.out.println(biTree.getDepth(biTree.getRoot()));
}
}
发表评论
-
【排序算法系列】希尔排序
2015-12-05 16:14 806希尔排序的概述: a[0]...a[n-1 ... -
归并排序
2015-06-20 15:28 860public class MergeSort { pub ... -
插入排序
2015-06-20 15:27 458/** * 插入排序1 容易理解 * * ... -
有序线性链表归并
2013-10-05 11:30 1513#include<stdio.h> #incl ... -
Trie树 应用 Phone List
2012-06-15 11:21 1149Phone List 时间限 ... -
Trie树 单词查找树 键树(JAVA版附分析说明)
2012-06-13 10:27 5118来源于英文“retrieval”. ... -
Trie树 单词查找树 键树
2012-06-12 08:59 1119转自:http://zh.wik ... -
数字金额转中文大写金额
2010-11-26 15:09 1402/** * 用来将数字金额转化成中文大写的金额 ... -
汉诺塔递归算法
2010-11-25 08:17 1320import java.util.Scanner; /* ... -
约瑟夫出圈
2010-11-24 20:45 1074#include<iostream> #incl ... -
SmartHashSet只是为了解释HashSet的原理
2010-07-26 11:11 1332写该类的目的只是为了 ... -
二叉树中序遍历非递归算法
2010-06-29 23:17 1691#include<iostream> usi ... -
二叉树的创建
2010-06-29 23:15 1102#include<iostream> usi ... -
哈弗曼树建立与哈弗曼编码
2010-06-29 23:12 1211#include<iostream> #de ... -
二叉排序树转双向链表(要求无任何新增节点)
2010-06-29 23:07 2460题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双 ... -
线索二叉树中插入结点
2010-06-29 23:05 1848#include<iostream> usi ... -
二叉排序树的递归与非递归查找
2010-06-29 22:58 2259#include<iostream> usi ... -
二叉树中序线索化及查找某一结点的前驱,后继结点
2010-06-29 22:54 2643#include<iostream> usi ... -
十字链表定义创建查找
2010-06-29 22:44 1285#include<iostream> #defi ... -
稀疏矩阵转置
2010-06-29 22:39 1600#include<iostream> #defi ...
相关推荐
二叉树的三种遍历与求数的深度以及数的结点数 二叉树的三种遍历与求数的深度以及数的结点数
数据结构二叉树遍历求树叶数及树的深度,个人作业,仅供大家参考或改进
数据结构课程设计--二叉树遍历及其应用、对树的先序遍历、后序遍历、中序遍历、层序遍历、二叉树的深度及其叶子树、并打印树形。
二叉树遍历算法应用各种算法包括遍历创建求深度等
根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树。 二叉树的基本功能: 1、二叉树的建立 2、前序遍历二叉树 3、中序遍历二叉树 ...6、求二叉树的深度 7、求指定结点到根的路径 8、二叉树的销毁
二叉树遍历 包括先序遍历 中序遍历 后序遍历 求结点个数 求树的深度
实现了二叉树的前中后遍历,以及层次遍历,求出了二叉树的深度,叶子个数。 实验报告还包含目录,所有遍历方法的解释,以及结果展示和结论改进
1.二叉树的基本操作实现【问题描述】建立一棵二叉树,用递归方法实现二叉树的如下基本操作:(1)按先序序列构造一棵二叉链表表示的二叉树T;...ABCDEFG【选做内容】采用非递归算法实现二叉树遍历。
C语言二叉树遍历前序非递归算法,简单易懂,正确无误
实现二叉树的深度遍历广度遍历等关于二叉树的基本操作
二叉树广度和深度优先遍历,通过递归算法实现二叉树的建立,利用递归算法实现深度优先遍历,使用队列实现广度优先遍历
1、深度优先遍历 2、广度优先遍历 3、求深度 4、已知二叉树前序中序,还原二叉树 5、已知前序和中序,求后序
二叉树遍历算法 (递归的、非递归的中序、前序、后序遍历 和 层次遍历 以及 求二叉树的宽度和深度)
数据结构二叉树的源代码包含二叉树的基本操作: 各种遍历,深度计算
具体包括建立二叉树、遍历二叉树、求二叉树的深度、求二叉树的叶子结点。其中遍历二叉树包含三种方法:先序遍历、中序遍历与后序遍历,这三种遍历都分别运用了两种不同的算法,即递归算法与非递归算法。最后软件使用...
前序遍历 中序遍历 后序遍历 深度遍历 广度遍历 插入排序 选择排序 冒泡排序 快速排序 堆排序 希尔排序 合并排序 快速3排序
二叉树几种遍历方式的非递归版本 先序遍历 中序遍历 后序遍历 层次遍历
C语言的, 数据结构的作业 求二叉树的深度(后序遍历)
建立二叉树,前后中序遍历二叉树,求二叉树的深度
深度优先遍历的实现; 广度优先遍历的实现;