⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threeorder.java

📁 利用二叉树的逻辑结构、链式存储结构等
💻 JAVA
字号:
import java.io.*;
import java.util.*;

class BiTreeNode{
	String content;
	BiTreeNode left;
	BiTreeNode right;
	BiTreeNode(){
		content = "";
		left = null;
		right = null;
	}
	BiTreeNode(String content, BiTreeNode left, BiTreeNode right){
		this.content = content;
		this.left = left;
		this.right = right;
	}
	void preOrder(){
		System.out.print(content + " ");
		if (left != null)
			left.preOrder();
		if (right != null)
			right.preOrder();
	}
	void inOrder(){
		if (left != null)
			left.inOrder();
		System.out.print(content + " ");
		if (right != null)
			right.inOrder();
	}
	void postOrder(){
		if (left != null)
			left.postOrder();
		if (right != null)
			right.postOrder();
		System.out.print(content + " ");
	}
}
public class ThreeOrder{
    public static void main(String[] args) throws Exception{
	System.out.println("请输入二叉树内容:第一行为节点数n,后面的n行是节点A -1 3的形式");
	String line;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		line = br.readLine();
		int amount = Integer.parseInt(line);
		if (amount == 0){
			System.out.println("空树的前序、中序和后序遍历均为空");
			return;
		}
		BiTreeNode[] nodes = new BiTreeNode[amount];
		for (int i=0; i<amount; i++)
			nodes[i] = new BiTreeNode();
		for (int i=0; i<amount; i++){
			line = br.readLine();
			String[] sub = line.split(" ");
			int leftMark = Integer.parseInt(sub[1]);
			int rightMark = Integer.parseInt(sub[2]);
			nodes[i].content = sub[0];
			if (leftMark >= 0)
				nodes[i].left = nodes[leftMark];
			if (rightMark >= 0)
				nodes[i].right = nodes[rightMark];
		}
		System.out.println("您输入的二叉树的前序遍历结果是:");
		nodes[0].preOrder();
		System.out.println("\n您输入的二叉树的中序遍历结果是:");
		nodes[0].inOrder();
		System.out.println("\n您输入的二叉树的后序遍历结果是:");
		nodes[0].postOrder();
		System.out.println();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -