层次遍历java(层次遍历是什么意思)

本篇文章给大家谈谈层次遍历java,以及层次遍历是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、写一个java层次遍历二叉树,简单点就可以,我要的是代码,不是纯文字说明2、java实现二叉树层次遍历3、Java实现JSON多层遍历

写一个java层次遍历二叉树,简单点就可以,我要的是代码,不是纯文字说明

public class BinaryNode {

Object element;

BinaryNode left;

BinaryNode right;

}

import java.util.*;

public class Queue {

protected LinkedList list;

// Postcondition: this Queue object has been initialized.

public Queue() {

list = new LinkedList();

} // default constructor

// Postcondition: the number of elements in this Queue object has been

// returned.

public int size() {

return list.size();

} // method size

// Postcondition: true has been returned if this Queue object has no

// elements. Otherwise, false has been returned.

public boolean isEmpty() {

return list.isEmpty();

} // method isEmpty

// Postconditon: A copy of element has been inserted at the back of this

// Queue object. The averageTime (n) is constant and

// worstTime (n) is O (n).

public void enqueue(Object element) {

list.addLast(element);

} // method enqueue

// Precondition: this Queue object is not empty. Otherwise,

// NoSuchElementException will be thrown.

// Postcondition: The element that was at the front of this Queue object –

// just before this method was called — has been removed

// from this Queue object and returned.

public Object dequeue() {

return list.removeFirst();

} // method dequeue

// Precondition: this Queue object is not empty. Otherwise,

// NoSuchElementException will be thrown.

// Postcondition: the element at index 0 in this Queue object has been

// returned.

public Object front() {

return list.getFirst();

} // method front

} // Queue class

import java.io.IOException;

public class BinaryTree {

BinaryNode root;

public BinaryTree() {

super();

// TODO 自动生成构造函数存根

root=this.createPre();

}

public BinaryNode createPre()

//按照先序遍历的输入方法,建立二叉树

{

BinaryNode t=null;

char ch;

try {

ch = (char)System.in.read();

if(ch==’ ‘)

t=null;

else

{

t=new BinaryNode();

t.element=(Object)ch;

t.left=createPre();

t.right=createPre();

}

} catch (IOException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

}

return t;

}

public void inOrder()

{

this.inOrder(root);

}

public void inOrder(BinaryNode t)

//中序遍历二叉树

{

if(t!=null)

{

inOrder(t.left);

System.out.print(t.element);

inOrder(t.right);

}

}

public void postOrder()

{

this.postOrder(root);

}

public void postOrder(BinaryNode t)

//后序遍历二叉树

{

if(t!=null)

{

postOrder(t.left);

System.out.print(t.element);

postOrder(t.right);

}

}

public void preOrder()

{

this.preOrder(root);

}

public void preOrder(BinaryNode t)

//前序遍历二叉树

{

if(t!=null)

{

System.out.print(t.element);

preOrder(t.left);

preOrder(t.right);

}

}

public void breadthFirst()

{

Queue treeQueue=new Queue();

BinaryNode p;

if(root!=null)

treeQueue.enqueue(root);

while(!treeQueue.isEmpty())

{

System.out.print(((BinaryNode)(treeQueue.front())).element);

p=(BinaryNode)treeQueue.dequeue();

if(p.left!=null)

treeQueue.enqueue(p.left);

if(p.right!=null)

treeQueue.enqueue(p.right);

}

}

}

public class BinaryTreeTest {

/**

* @param args

*/

public static void main(String[] args) {

// TODO 自动生成方法存根

BinaryTree tree = new BinaryTree();

System.out.println(“先序遍历:”);

tree.preOrder();

System.out.println();

System.out.println(“中序遍历:”);

tree.inOrder();

System.out.println();

System.out.println(“后序遍历:”);

tree.postOrder();

System.out.println();

System.out.println(“层次遍历:”);

tree.breadthFirst();

System.out.println();

}

}

java实现二叉树层次遍历

import java.util.ArrayList;

public class TreeNode {

private TreeNode leftNode;

private TreeNode rightNode;

private String nodeName;

public TreeNode getLeftNode() {

return leftNode;

}

public void setLeftNode(TreeNode leftNode) {

this.leftNode = leftNode;

}

public TreeNode getRightNode() {

return rightNode;

}

public void setRightNode(TreeNode rightNode) {

this.rightNode = rightNode;

}

public String getNodeName() {

return nodeName;

}

public void setNodeName(String nodeName) {

this.nodeName = nodeName;

}

public static int level=0;

public static void findNodeByLevel(ArrayListTreeNode nodes){

if(nodes==null||nodes.size()==0){

return ;

}

level++;

ArrayListTreeNode temp = new ArrayList();

for(TreeNode node:nodes){

System.out.println(“第”+level+”层:”+node.getNodeName());

if(node.getLeftNode()!=null){

temp.add(node.getLeftNode());

}

if(node.getRightNode()!=null){

temp.add(node.getRightNode());

}

}

nodes.removeAll(nodes);

findNodeByLevel(temp);

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

TreeNode root = new TreeNode();

root.setNodeName(“root”);

TreeNode node1 = new TreeNode();

node1.setNodeName(“node1”);

TreeNode node3 = new TreeNode();

node3.setNodeName(“node3”);

TreeNode node7 = new TreeNode();

node7.setNodeName(“node7”);

TreeNode node8 = new TreeNode();

node8.setNodeName(“node8”);

TreeNode node4 = new TreeNode();

node4.setNodeName(“node4”);

TreeNode node2 = new TreeNode();

node2.setNodeName(“node2”);

TreeNode node5 = new TreeNode();

node5.setNodeName(“node5”);

TreeNode node6 = new TreeNode();

node6.setNodeName(“node6”);

root.setLeftNode(node1);

node1.setLeftNode(node3);

node3.setLeftNode(node7);

node3.setRightNode(node8);

node1.setRightNode(node4);

root.setRightNode(node2);

node2.setLeftNode(node5);

node2.setRightNode(node6);

ArrayListTreeNode nodes = new ArrayListTreeNode();

nodes.add(root);

findNodeByLevel(nodes);

}

}

层次遍历java(层次遍历是什么意思)

Java实现JSON多层遍历

JSONObject jsonObject = new JSONObject(s);

然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中

JSONObject jsonObject = new JSONObject(jsonString);

Iterator iterator = jsonObject.keys();while(iterator.hasNext()){

key = (String) iterator.next();

value = jsonObject.getString(key);

}

层次遍历java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于层次遍历是什么意思、层次遍历java的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月31日 20:48:17
下一篇 2024年3月31日 20:53:22

相关推荐

  • java类与类之间的方法调用,java中类和方法

    Java中的一个类怎么调用另一个类中的方法 1、java类有两种方法一种是类方法就是用static修饰的,一种是实例方法,就是没有static修饰的方法。类方法可以同时类名.方法名的方式调用。而实例方法必须先生存类的实例在通过实例.方法名的方式调用。 2、如果是静态方法,直接内名.方法名就可以。如果不是静态方法,就需要创建调用的类的对象,用对象.方法名。 3…

    2024年5月15日
    3000
  • java内部精髓,java内功

    如何学好JAVA 1、同样,学习java为了最快的提升效率和保证你能够学会,还是需要找一家正规专业的培训机构,接受系统化的学习和掌握java实战项目,才能从入门到精通,更快成为一名合格的java工程师。 2、重要的是实践多敲代码 选择好了学习Java基础语言,还有就是选择一本经典的入门书籍,入门书籍不需要太多,一两本足够,要真正的吃透。 3、建议一:有系统的…

    2024年5月15日
    3000
  • java使用qq发送邮件,java发送电子邮件

    java如何使用ssl连接qq邮箱 1、//设置邮件内容 message.setText(内容为: 这是第一封java发送来的邮件。 2、电子邮件地址:您的QQ邮箱的完整邮件地址 如果您的电子邮件客户端支持SSL,可以在设置中选择使用SSL。 3、设置IMAP服务,使用SSL的通用配置如下:接收邮件服务器:imap.qq.com,使用SSL,端口号993。发…

    2024年5月15日
    3000
  • java做网游,java 做游戏

    JAVA的主要应用领域是什么? Web应用程序设计 可以从事网站应用程序开发,Java在网站开发领域占据了很大部分,像是网页制作、网站维护、软件测试等等。 Java的应用领域非常广泛。可以做应用系统、互联网网站、以及移动端的安卓等。学了Java之后就可以从事Java的软件开发工作,而且目前企业里紧缺的就是软件人才,Java以自身的优势市场份额排在计算机编程语…

    2024年5月15日
    3400
  • c语言快速遍历文件,c语言中的遍历是什么意思

    C语言遍历目录中的文件 1、C是一个通用的计算机编程语言创建的丹尼斯·里奇在1972年贝尔实验室。它是一种程序性和低级语言,提供对系统内存的访问。C是一个成千上万的计算机编程语言用来创建列表的指令。今天仍然非常广泛使用和影响力。 2、操作系统中有相关的API函数,可以读取目录中所有的文件名字,以及时间属性信息,把这些信息读出来,直接依次遍历即可。 3、首先调…

    2024年5月15日
    3800
  • java程序转安卓程序代码,java程序转安卓程序代码怎么转

    java代码如何迁移到安卓上?高分悬赏!!! 您好 您可以使用adt进行Android app的编写 然后可以直接调试在真机上运行。虽然android发展自java 但是java程序是无法直接在android手机上运行的哦。 先下载好自己需要的JAVA安装包放在储存卡上,进入手机已安装好的“JAVA“,再点击菜单键(手机下方三条横线的图标),点击储存卡选项。…

    2024年5月15日
    3900
  • idea怎么配置java环境,intellij idea怎么配置java

    intellijidea如何配置jdk intellijidea配置jdk的详细操作方法首先点击File下的Project的菜单。再点击SDKs这个选项开始指定jdk的位置。若是第一次要先点绿色加号才可指定jdk哦。在弹出下拉菜单中选择jdk就可以了。 先找到软件上如图所示的图标,打开Project Structure.【配置project】这里需要注意四个…

    2024年5月15日
    3500
  • java正则去掉html标签,java正则匹配a标签

    怎样用正则表达式删除HTML标签 1、用正则表达式去掉html标签,下面是它的代码,直接复制就可以用的。 Java正则表达式求问。1、Java 正则表达式:正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 2、正则表达式,又称规则表达式。(英语:Regular Express…

    2024年5月15日
    3500
  • java终止程序,JAVA终止程序的语句

    Java中如何正确而优雅的终止运行中的线程 1、让线程的run()方法执行完,线程自然结束。 2、使用stop方法终止线程 使用stop方法可以强行终止正在运行或挂起的线程。 3、使用标志 中断线程。使用标志 一种简单的方法是使用线程来指示线程是否正在运行,并使用此标志根据您的要求采取纠正措施,下面是一个示例代码,概述了如何使用标志来杀死Java线程。在上面…

    2024年5月15日
    3300
  • java车载设备api,java车载系统

    用java接口实现声卡,显卡,网卡API插槽工作 1、Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 2、首先你需要声卡支持编码,也就是你有声卡驱动的接口,然后你要注意,有没有提供java接口,如果有,那你幸运了,可以写了。 3…

    2024年5月15日
    4500

发表回复

登录后才能评论



关注微信