九度oj 1201 二叉排序树的创建+遍历
来源:互联网 发布:网站运营数据分析 编辑:程序博客网 时间:2024/06/07 00:35
题目链接 点击打开链接
import java.io.*;import java.util.*;public class Main{public static void main(String []args){Scanner cin = new Scanner(new InputStreamReader(System.in)) ;PrintWriter cout = new PrintWriter(System.out) ;while(cin.hasNext()){new Task1(cin.nextInt()).solve(cin, cout);}cout.flush();cout.close();}}class Node{int val ;Node left , right ;Node(int val){this.val = val ;left = right = null ;}Node(){left = right = null ;}}class Task1{PrintWriter cout ;int n ;public Task1(int n){this.n = n ;}void solve(Scanner cin , PrintWriter cout){this.cout = cout ;Node root = new Node(-100) ;for(int i = 1 ; i<= n ;i++){ insert(root , cin.nextInt()) ;}preOrder(root) ;cout.println();inOrder(root) ;cout.println();postOrder(root) ;cout.println();cout.flush();}//在以p节点为根的二叉树中插入节点后,新的二叉树的根节点还是p,每次插入的节点都是叶子节点void insert( Node p , int key){ if( p.val == -100){//p = new Node(key) ; // 这里有java 与c++ 不同的地方,//核心卷I P123页,一个方法不能让 对象参数 引用一个新的对象,(引用后并不改变实参root,不能达到所想要的目的)p.val = key ;return ;}if(key < p.val) {if (p.left == null){p.left = new Node(key) ; }else{insert(p.left , key) ;}}else if(key > p.val) { if(p.right == null){ p.right = new Node(key) ; } else insert(p.right , key) ; }}// 前序递归遍历void preOrder(Node p){if(p != null){cout.print(p.val + " ") ;preOrder(p.left) ;preOrder(p.right) ;}}//中序递归遍历二叉树void inOrder(Node p){if(p!= null){inOrder(p.left) ;cout.print(p.val + " ") ;inOrder(p.right) ;}}//后序递归遍历void postOrder(Node p){if(p != null){postOrder(p.left) ;postOrder(p.right) ;cout.print(p.val + " ") ;}}}
0 0
- 九度oj 1201 二叉排序树的创建+遍历
- 九度oj 1201:二叉排序树
- 九度OJ 1201 二叉排序树
- 九度OJ-1201-二叉排序树
- 九度OJ - 1201 - 二叉排序树
- 九度OJ-1201-二叉排序树
- 九度OJ 1201 二叉排序树
- 九度oj 题目1201:二叉排序树
- 九度oj 二叉排序树 1201,1009 c++
- 九度OJ题目1201:二叉排序树
- 九度OJ题目1201:二叉排序树
- 九度OJ——1201二叉排序树
- 九度:1201<二叉排序树><建立,遍历>
- 九度OJ 1467 二叉排序树
- 九度OJ 1467 二叉排序树
- 九度oj-1467-二叉排序树
- 九度OJ - 1467 - 二叉排序树
- 九度OJ 1467 二叉排序树
- matlab----标签图像分类训练工具
- OC 中关键字的作用域
- history
- POJ 1017 Packets 【贪心 模拟】
- 操作系统页面置换fifo lru方式
- 九度oj 1201 二叉排序树的创建+遍历
- 2015
- Android编程容易忽略细点
- Android开发-自定义toast
- VS运行时库 /MD、/MDd 和 /MT、/MTd之间的区别
- OC中new方法与alloc+init及构造方法
- 稀疏表示字典的显示(MATLAB实现代码)
- 类和结构体的选择
- opengl函数笔记