<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hexise's Blog

    業精于勤荒于嬉 行成于思毀于隨
    posts - 13, comments - 12, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    我的評論

    [更新]加入廣度遍歷的BinaryTree:
     
    public class BinaryTree {
        
    public static int getTreeHeight(TreeNode root) {
            
    if (root == null)
                
    return 0;
            
    if (root.left == null && root.right == null)
                
    return 1;
            
    return 1 + Math
                    .max(getTreeHeight(root.left), getTreeHeight(root.right));
        }


        
    public static void recursePreOrder(TreeNode root) {
            
    if (root == null)
                
    return;
            visit(root);
            
    if (root.left != null)
                recursePreOrder(root.left);
            
    if (root.right != null)
                recursePreOrder(root.right);
        }


        
    public static void stackPreOrder(TreeNode root) {
            Stack stack 
    = new Stack();
            
    if (root == null)
                
    return;
            stack.push(root);
            visit(root);
            TreeNode temp 
    = root.left;
            
    while (temp != null{
                stack.push(temp);
                visit(temp);
                temp 
    = temp.left;
            }

            temp 
    = (TreeNode) stack.pop();
            
    while (temp != null{
                temp 
    = temp.right;
                
    while (temp != null{
                    stack.push(temp);
                    visit(temp);
                    temp 
    = temp.left;
                }

                
    if (stack.empty())
                    
    break;
                temp 
    = (TreeNode) stack.pop();
            }

        }


        
    public static void recurseInOrder(TreeNode root) {
            
    if (root == null)
                
    return;
            
    if (root.left != null)
                recurseInOrder(root.left);
            visit(root);
            
    if (root.right != null)
                recurseInOrder(root.right);
        }


        
    public static void stackInOrder(TreeNode root) {
            Stack stack 
    = new Stack();
            
    if (root == null)
                
    return;
            
    else
                stack.push(root);
            TreeNode temp 
    = root.left;
            
    while (temp != null{
                stack.push(temp);
                temp 
    = temp.left;
            }

            temp 
    = (TreeNode) stack.pop();
            
    while (temp != null{
                visit(temp);
                temp 
    = temp.right;
                
    while (temp != null{
                    stack.push(temp);
                    temp 
    = temp.left;
                }

                
    if (stack.empty())
                    
    break;
                temp 
    = (TreeNode) stack.pop();
            }

        }

        
        
    public static void widthTraverse(TreeNode root) {
            Queue queue 
    = new Queue();
            queue.push(root);
            traverseLevel(queue);
        }

        
        
    public static void traverseLevel(Queue queue){
            
    for(int i=0; i<queue.size(); i++){
                TreeNode node 
    = (TreeNode)queue.pop();
                visit(node);
                
    if(node.left != null)
                    queue.push(node.left);
                
    if(node.right != null)
                    queue.push(node.right);
            }

            
    if(queue.size() > 0)
                traverseLevel(queue);
        }


        
    private static void visit(TreeNode node) {
            System.out.println(node.value);
        }


        
    public static void main(String[] args) {
            TreeNode node1 
    = new TreeNode(nullnull1);
            TreeNode node2 
    = new TreeNode(null, node1, 2);
            TreeNode node3 
    = new TreeNode(nullnull3);
            TreeNode node4 
    = new TreeNode(node2, node3, 4);
            TreeNode node5 
    = new TreeNode(nullnull5);
            TreeNode root 
    = new TreeNode(node4, node5, 0);
            System.out.println(
    "Tree Height is " + getTreeHeight(root));
            System.out.println(
    "Recurse In Order Traverse");
            recurseInOrder(root);
            System.out.println(
    "Stack In Order Traverse");
            stackInOrder(root);
            System.out.println(
    "Recurse Pre Order Traverse");
            recursePreOrder(root);
            System.out.println(
    "Stack Pre Order Traverse");
            stackPreOrder(root);
            System.out.println(
    "Width Traverse");
            widthTraverse(root);
        }


    }


    用LinkedList實現的Queue:
     
    import java.util.EmptyStackException;
    import java.util.LinkedList;

    public class Queue {
        
    private LinkedList list;

        
    public Queue() {
            
    this.list = new LinkedList();
        }


        
    public boolean empty() {
            
    return list.isEmpty();
        }


        
    public Object peek() {
            
    if (empty())
                
    throw new EmptyStackException();
            
    return list.getFirst();
        }


        
    public Object pop() {
            
    if (empty())
                
    throw new EmptyStackException();
            
    return list.removeFirst();
        }


        
    public void push(Object o) {
            list.add(o);
        }

        
        
    public int size(){
            
    return list.size();
        }


        
    public static void main(String[] args) {
            Queue queue 
    = new Queue();
            queue.push(
    new Integer(1));
            queue.push(
    new Integer(11));
            queue.push(
    new Integer(1111));
            queue.push(
    new Integer(22));
            queue.push(
    new Integer(222));
            queue.push(
    new Integer(31));
            queue.push(
    new Integer(221));
            
    while (!queue.empty()) {
                System.out.println(queue.pop());
            }

        }

    }

    re: GEF編輯器的區域及滾動條 Hexise 2007-01-04 10:02  
    @lautsie
    剛發就被你找到了。。。
    re: SWT中的時間控件 Hexise 2006-12-29 12:12  
    @交口稱贊
    呵呵,巧合巧合
    主站蜘蛛池模板: 亚洲嫩模在线观看| 久久影视综合亚洲| 亚洲精品资源在线| 久久免费视频网站| 亚洲成在人线av| 曰批全过程免费视频在线观看无码| 亚洲精品第一国产综合精品99| 美女免费精品高清毛片在线视| 国产一区在线观看免费| 国产精品亚洲专一区二区三区| 精品免费国产一区二区| 亚洲另类无码专区首页| 免费国产综合视频在线看 | 3d成人免费动漫在线观看| 久久久亚洲裙底偷窥综合| 久久99国产乱子伦精品免费| 激情内射亚洲一区二区三区| 99爱免费观看视频在线| 亚洲视频小说图片| A在线观看免费网站大全| 亚洲乱色伦图片区小说| 亚洲AV伊人久久青青草原| 人妻仑乱A级毛片免费看| 国产亚洲综合久久系列| 免费播放一区二区三区| 亚洲videosbestsex日本| 国产精品免费看久久久久| 国产无限免费观看黄网站| 亚洲AV日韩AV永久无码免下载 | 2022免费国产精品福利在线| 亚洲日韩欧洲乱码AV夜夜摸| 日韩免费人妻AV无码专区蜜桃 | 无码国产亚洲日韩国精品视频一区二区三区| 污视频网站在线免费看| 亚洲精品无码久久久久| 在线看片韩国免费人成视频| 亚洲AV电影天堂男人的天堂| 亚洲精品制服丝袜四区| 亚洲国产精品免费观看| 产传媒61国产免费| 亚洲一区二区三区深夜天堂|