- 浏览: 791870 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
Netty源码学习-FileRegion -
飞天奔月:
写得有趣 ^_^
那一年你定义了一个接口 -
GoldRoger:
第二个方法很好
java-判断一个自然数是否是某个数的平方。当然不能使用开方运算 -
bylijinnan:
<script>alert("close ...
自己动手实现Java Validation -
paul920531:
39行有个bug:"int j=new Random ...
java-蓄水池抽样-要求从N个元素中随机的抽取k个元素,其中N无法确定
import java.util.LinkedList; import java.util.List; import java.util.Stack; public class BinTreeTraverse { //private int[] array={ 1, 2, 3, 4, 5, 6, 7, 8, 9 }; private int[] array={ 10,6,14,4,8,12,16};//BinarySearchTree private static List<Node> nodeList=null; public static void main(String[] args) { BinTreeTraverse tree=new BinTreeTraverse(); tree.createBinTree(); preOrder(nodeList.get(0)); System.out.println(); preOrderStack(nodeList.get(0)); System.out.println(); inOrder(nodeList.get(0)); System.out.println(); inOrderStack(nodeList.get(0)); System.out.println(); postOrder(nodeList.get(0)); System.out.println(); postOrderStack(nodeList.get(0)); System.out.println(); levelOrderStack(nodeList.get(0)); } public static void visit(Node node){ System.out.print(node.getData()+" "); } //create binary tree from array.the data stored in level-order public void createBinTree(){ nodeList=new LinkedList<Node>(); for(int i=0,len=array.length;i<len;i++){ nodeList.add(new Node(array[i])); } int len=array.length; int lastRootIndex=(len>>1)-1; for(int i=lastRootIndex;i>=0;i--){ Node root=nodeList.get(i); int leftIndex=i*2+1; Node leftNode=nodeList.get(leftIndex); //Node leftNode=new Node(array[leftIndex]);//this is wrong root.setLeft(leftNode); //最后的那个根节点一定是有左孩子的。右孩子则不一定 int rightIndex=leftIndex+1; if(rightIndex<=len-1){ Node rightNode=nodeList.get(rightIndex); root.setRight(rightNode); } } } //nonRecursion perOrder Traverse public static void preOrderStack(Node root){ Stack<Node> stack=new Stack<Node>(); Node p=root; if(p!=null){ stack.push(p); while(!stack.isEmpty()){ p=stack.pop(); visit(p); if(p.getRight()!=null)stack.push(p.getRight()); if(p.getLeft()!=null)stack.push(p.getLeft()); } } } //nonRecursion inOrder Traverse public static void inOrderStack(Node p){ Stack<Node> stack=new Stack<Node>(); while(p!=null||!stack.isEmpty()){ //push all LeftChild,when p has no LeftChild,that means it's root,it should be visited while(p!=null){ stack.push(p); p=p.getLeft(); } if(!stack.isEmpty()){ p=stack.pop(); visit(p); p=p.getRight(); } } } //nonRecursion postOrder Traverse public static void postOrderStack(Node p){ Stack<Node> stack=new Stack<Node>(); Node q=p;//q,is the latest Node that has been visited while(p!=null){ while(p.getLeft()!=null){ stack.push(p); p=p.getLeft(); } /* while(p!=null){//wrong.when 'while' ends,p=null stack.push(p); p=p.getLeft(); } */ /*left-right-root *when a node: *1.has no right-child -->p.getRight()==null *2.right-child has been visited -->p.getRight()==q *it's time to visit this node. */ while(p!=null&&(p.getRight()==null||p.getRight()==q)){ visit(p); q=p; if(stack.isEmpty())return; p=stack.pop(); } stack.push(p); p=p.getRight(); } } //level order public static void levelOrderStack(Node p){ if(p==null)return; List<Node> queue=new LinkedList<Node>(); queue.add(p); while(!queue.isEmpty()){ Node temp=queue.remove(0); System.out.print(temp.data+" "); if(temp.left!=null){ queue.add(temp.left); } if(temp.right!=null){ queue.add(temp.right); } } System.out.println(); } public static void preOrder(Node root){ if(root==null){return;} System.out.print(root.getData()+" "); preOrder(root.getLeft()); preOrder(root.getRight()); } public static void inOrder(Node root){ if(root==null){return;} inOrder(root.getLeft()); System.out.print(root.getData()+" "); inOrder(root.getRight()); } public static void postOrder(Node root){ if(root==null){return;} postOrder(root.getLeft()); postOrder(root.getRight()); System.out.print(root.getData()+" "); } private static class Node{ private Node left; private Node right; private int data; Node(int iData){ data=iData; left=null; right=null; } public void setLeft(Node leftNode){ this.left=leftNode; } public void setRight(Node rightNode){ this.right=rightNode; } public Node getLeft(){ return left; } public Node getRight(){ return right; } public int getData(){ return data; } } }
评论
3 楼
neyshule
2012-10-22
写的不对吧,p是nulll的时候还能get?
public static void inOrderStack(Node p){
Stack<Node> stack=new Stack<Node>();
while(p!=null||!stack.isEmpty()){
//push all LeftChild,when p has no LeftChild,that means it's root,it should be visited
while(p!=null){
stack.push(p);
p=p.getLeft();
}
if(!stack.isEmpty()){
p=stack.pop();
visit(p);
p=p.getRight();
}
}
}
public static void inOrderStack(Node p){
Stack<Node> stack=new Stack<Node>();
while(p!=null||!stack.isEmpty()){
//push all LeftChild,when p has no LeftChild,that means it's root,it should be visited
while(p!=null){
stack.push(p);
p=p.getLeft();
}
if(!stack.isEmpty()){
p=stack.pop();
visit(p);
p=p.getRight();
}
}
}
2 楼
ren2881971
2012-07-18
哎。。 早点学习到就好了 昨天面试 有问道。
1 楼
neyshule
2012-06-13

发表评论
-
二维数组(矩阵)对角线输出
2014-04-28 17:55 4732/** 二维数组 对角线输出 两个方向 例如对于数 ... -
线段树-poj1177-N个矩形求边长(离散化+扫描线)
2013-01-05 20:34 2974package com.ljn.base; import ... -
线段树-入门
2013-01-05 20:32 2174/** * 线段树入门 * 问题:已知线段 ... -
bitmap求哈密顿距离-给定N(1<=N<=100000)个五维的点A(x1,x2,x3,x4,x5),求两个点X(x1,x2,x3,x4,x5)和Y(
2012-12-27 21:12 2990import java.util.Random; / ... -
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
2012-12-21 18:17 4129import java.util.Arrays; ... -
有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。写一个函数实现。复杂度是什么。
2012-12-07 14:32 3627import java.util.Random; i ... -
三色旗算法
2012-11-29 12:19 3814import java.util.Arrays; ... -
单调队列-用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值
2012-11-11 22:32 2383import java.util.LinkedList; ... -
据说是2012年10月人人网校招的一道笔试题-给出一个重物重量为X,另外提供的小砝码重量分别为1,3,9。。。3^N。 将重物放到天平左侧,问在两边如何添加砝码
2012-10-28 23:41 1990public class ScalesBalance { ... -
编程之美-分层遍历二叉树
2012-08-12 10:02 5914import java.util.ArrayList; ... -
编程之美-最短摘要的生成
2012-08-10 18:37 2500import java.util.HashMap; ... -
编程之美-计算字符串的相似度
2012-08-09 19:25 2906public class StringDistance ... -
编程之美-电话号码对应英语单词
2012-08-09 19:24 4237import java.util.Arrays; ... -
编程之美-数组中最长递增子序列
2012-08-09 19:22 2027import java.util.Arrays; imp ... -
编程之美-数组中最长递增子序列
2012-08-09 19:22 6import java.util.Arrays; imp ... -
xxx
2012-08-09 00:35 0package beautyOfCoding; public ... -
编程之美-子数组的最大和(二维)
2012-08-05 23:51 2278package beautyOfCoding; impo ... -
编程之美-子数组的最大乘积
2012-08-06 00:00 2285public class MaxProduct { ... -
编程之美-找符合条件的整数 用字符串来表示大整数避免溢出
2012-07-26 19:26 1858import java.util.LinkedList ... -
sudoku
2012-07-25 20:36 0package a; public class Sudoku ...
相关推荐
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
wrf转mp4播放器1.1.1
内容概要:本文档详细介绍了如何在Simulink中设计一个满足特定规格的音频带ADC(模数转换器)。首先选择了三阶单环多位量化Σ-Δ调制器作为设计方案,因为这种结构能在音频带宽内提供高噪声整形效果,并且多位量化可以降低量化噪声。接着,文档展示了具体的Simulink建模步骤,包括创建模型、添加各个组件如积分器、量化器、DAC反馈以及连接它们。此外,还进行了参数设计与计算,特别是过采样率和信噪比的估算,并引入了动态元件匹配技术来减少DAC的非线性误差。性能验证部分则通过理想和非理想的仿真实验评估了系统的稳定性和各项指标,最终证明所设计的ADC能够达到预期的技术标准。 适用人群:电子工程专业学生、从事数据转换器研究或开发的技术人员。 使用场景及目标:适用于希望深入了解Σ-Δ调制器的工作原理及其在音频带ADC应用中的具体实现方法的人群。目标是掌握如何利用MATLAB/Simulink工具进行复杂电路的设计与仿真。 其他说明:文中提供了详细的Matlab代码片段用于指导读者完成整个设计流程,同时附带了一些辅助函数帮助分析仿真结果。
国网台区终端最新规范
《基于YOLOv8的智慧农业水肥一体化控制系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
GSDML-V2.33-LEUZE-AMS3048i-20170622.xml
微信小程序项目课程设计,包含LW+ppt
微信小程序项目课程设计,包含LW+ppt
终端运行进度条脚本
幼儿园预防肺结核教育培训课件资料
python,python相关资源
《基于YOLOv8的智慧校园电动车充电桩状态监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
deepseek 临床之理性软肋.pdf
SM2258XT量产工具(包含16种程序),固态硬盘量产工具使用
RecyclerView.zip
水务大脑让水务运营更智能(23页)
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
大众捷达轿车前轮制动器设计
《基于YOLOv8的智能工厂压缩空气泄漏检测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
3米-翻抛机