亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? btpanel.java

?? 平衡二叉樹 生成
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// Source File Name:   BTPanel.java

import java.awt.*;

class BTPanel extends Panel
    implements Runnable
{

    BTPanel(BTApplet btapplet)
    {
        LINECOLOR = Color.darkGray;
        EDGECOLOR = Color.black;
        PICKCOLOR = Color.green;
        FINDCOLOR = ROOTCOLOR;
        sleeptime = 100;
        inverse = true;
        applet = btapplet;
        engine = null;
        tree = new BTTree();
        center = new Point(0, 0);
        treenode = new BTNode();
        picknode = null;
        prevpick = null;
        nextpick = null;
        nextnode = null;
        traversal = 0;
    }

    public void locate(BTData btdata)
    {
        if(tree.root != null)
        {
            treenode.mode = 1;
            treenode.init(btdata);
            treenode.x = tree.root.x;
            treenode.y = 0;
            treenode.X = tree.root.x;
            treenode.Y = tree.root.y;
            nextnode = tree.root;
            applet.playSound(1);
        }
    }

    public void insert(BTData btdata)
    {
    	System.out.println("in insert");
        if(tree.root == null)
        {
            BTNode btnode = tree.insert(btdata);
            btnode.x = center.x;
            btnode.y = 0;
            btnode.X = center.x;
            btnode.Y = center.y;
        } else
        {
        	System.out.println("in insert 1");
            if(treenode.mode == 3)
            {
            	System.out.println("in insert 2");
            	System.out.println("in insert treenode mode = 3");
                nextnode = tree.insert(treenode.data);
                if(nextnode == null)
                {
                    applet.playSound(3);
                } else
                {
                    if(nextnode.parent != null)
                    {
                        nextnode.x = nextnode.parent.x;
                        nextnode.y = nextnode.parent.y;
                    } else
                    {
                        nextnode.x = center.x;
                        nextnode.y = 0;
                    }
                    placeNodes();
                    applet.playSound(2);
                }
            }
            System.out.println("in insert 3");
            treenode.mode = 3;
            treenode.init(btdata);
            treenode.x = tree.root.x;
            treenode.y = 0;
            treenode.X = tree.root.x;
            treenode.Y = tree.root.y;
            nextnode = tree.root;
        }
        System.out.println("in insert 4");
        applet.playSound(1);
    }

    public void traverse(int traversal)
    {
    	this.traversal = traversal;
        if(tree.root == null)
        {
        	return;
        } else
        {
        	treenode.mode = 99;
        	switch(traversal)
        	{
        		case 0:
        			treenode.init(tree.root.lastInO().data);
        			System.out.println("Traverse last: " + tree.root.lastInO().data);
        			nextnode = tree.root.firstInO();
        			System.out.println("Traverse first: " + nextnode.data);
        			break;
        		
        		case 1:
        			treenode.init(tree.root.lastPrO().data);
        			System.out.println("Traverse last: " + tree.root.lastPrO().data);
        			nextnode = tree.root;
        			System.out.println("Traverse first: " + nextnode.data);
        			break;
        		
        		case 2:
        			treenode.init(tree.root.data);
        			nextnode = tree.root.firstPoO();
        			break;
        	}
        	System.out.println("Tree node mode: " + treenode.mode);
        	//treenode.init(tree.root.lastInO().data);
            treenode.x = tree.root.x;
            treenode.y = 0;
            treenode.X = tree.root.x;
            treenode.Y = tree.root.y;
            //nextnode = tree.root.firstInO();
            System.out.println("first one in the tree: " + nextnode.data.key);
            nextnode.mode = 98;
        }

    }
    
    public void remove(BTData btdata)
    {
        if(tree.root != null)
        {
            if(treenode.mode == 5)
            {
                nextnode = tree.remove(treenode.data);
                if(nextnode == null)
                {
                    applet.playSound(3);
                } else
                {
                    placeNodes();
                    applet.playSound(2);
                }
            }
            treenode.mode = 5;
            treenode.init(btdata);
            treenode.x = tree.root.x;
            treenode.y = 0;
            treenode.X = tree.root.x;
            treenode.Y = tree.root.y;
            nextnode = tree.root;
            applet.playSound(1);
        }
    }

    public void delall()
    {
        treenode.mode = 0;
        if(tree.root != null)
            tree.delall();
        placeNodes();
        tree.root = null;

    }

    public void balance()
    {
        treenode.mode = 0;
        BTTree bttree = new BTTree(true);
        bttree.insert(tree);
        tree.delall();
        tree = bttree;
        bttree = null;
        placeNodes();
    }

    public void resetModes()
    {
        for(BTNode btnode = tree.root; btnode != null; btnode = btnode.nextPrO())
            btnode.mode = 0;

    }

    public void resetNodes()
    {
        for(BTNode btnode = tree.root; btnode != null; btnode = btnode.nextPrO())
        {
            btnode.x = btnode.X;
            btnode.y = 0;
        }

    }

    synchronized void moveNodes()
    {
    
        for(BTNode btnode = tree.root; btnode != null; btnode = btnode.nextPrO())
            if(btnode != picknode)
            {
                int i = (btnode.X - btnode.x) / 2;
                int i1 = (btnode.Y - btnode.y) / 2;
                btnode.x = i == 0 ? btnode.X : btnode.x + i;
                btnode.y = i1 == 0 ? btnode.Y : btnode.y + i1;
            }
        
        if(treenode.mode != 0)
            switch(treenode.mode)
            {
            case 2: // '\002'
            default:
                break;

            case 1: // '\001'
                int j = (treenode.X - treenode.x) / 2;
                int j1 = (treenode.Y - treenode.y) / 2;
                treenode.x = j == 0 ? treenode.X : treenode.x + j;
                treenode.y = j1 == 0 ? treenode.Y : treenode.y + j1;
                if(j == 0 && j1 == 0)
                {
                    BTNode btnode1 = nextnode.nextdown(treenode.data);
                    if(btnode1 == nextnode)
                    {
                        treenode.mode = 0;
                        nextnode.mode = 2;
                        applet.playSound(2);
                        return;
                    }
                    if(btnode1 == null)
                    {
                        treenode.mode = 0;
                        applet.playSound(3);
                        return;
                    } else
                    {
                        nextnode = btnode1;
                        treenode.X = nextnode.x;
                        treenode.Y = nextnode.y;
                        applet.playSound(1);
                        return;
                    }
                }
                break;

            case 3: // '\003'
            	//System.out.println("inside moveNodes: " + treenode.data.key);
                int k = (treenode.X - treenode.x) / 2;
                int k1 = (treenode.Y - treenode.y) / 2;
                treenode.x = k == 0 ? treenode.X : treenode.x + k;
                treenode.y = k1 == 0 ? treenode.Y : treenode.y + k1;
                if(k != 0 || k1 != 0)
                    break;
                BTNode btnode2 = nextnode.nextdown(treenode.data);
                if(btnode2 == null)
                {
                    btnode2 = tree.insert(treenode.data);
                    placeNodes();
                    btnode2.x = nextnode.x;
                    btnode2.y = nextnode.y;
                    treenode.mode = 4;
                    btnode2.mode = 3;
                    nextnode = btnode2;
                    applet.playSound(2);
                    System.out.println("inside moveNodes insert: " + treenode.data.key);
                    return;
                }
                if(btnode2 == nextnode)
                {
                    treenode.mode = 0;
                    nextnode.mode = 0;
                    applet.playSound(3);
                    System.out.println("inside moveNodes ==: " + btnode2.data.key);
                    return;
                } else
                {
                    nextnode = btnode2;
                    treenode.X = nextnode.x;
                    treenode.Y = nextnode.y;
                    applet.playSound(1);
                    System.out.println("inside moveNodes: " + btnode2.data.key);
                    return;
                }

            case 4: // '\004'
                if(nextnode.x == nextnode.X && nextnode.y == nextnode.Y)
                {
                    treenode.mode = 0;
                    nextnode.mode = 4;
                    placeNodes();
                    return;
                }
                break;

            case 5: // '\005'
                int l = (treenode.X - treenode.x) / 2;
                int l1 = (treenode.Y - treenode.y) / 2;
                treenode.x = l == 0 ? treenode.X : treenode.x + l;
                treenode.y = l1 == 0 ? treenode.Y : treenode.y + l1;
                if(l != 0 || l1 != 0)
                    break;
                BTNode btnode3 = nextnode.nextdown(treenode.data);
                if(btnode3 == nextnode)
                {
                    treenode.mode = 0;
                    nextnode = tree.remove(treenode.data);
                    nextnode.data = null;
                    nextnode = null;
                    placeNodes();
                    applet.playSound(2);
                    return;
                }
                if(btnode3 == null)
                {
                    treenode.mode = 0;
                    applet.playSound(3);
                    return;
                } else
                {
                    nextnode = btnode3;
                    treenode.X = nextnode.x;
                    treenode.Y = nextnode.y;
                    applet.playSound(1);
                    return;
                }
                
            case 99:
                int m = (treenode.X - treenode.x) / 2;
                int m1 = (treenode.Y - treenode.y) / 2;
                treenode.x = m == 0 ? treenode.X : treenode.x + m;
                treenode.y = m1 == 0 ? treenode.Y : treenode.y + m1;
                if(m == 0 && m1 == 0)
                {
                	BTNode btnode4 = null;
                	switch(traversal)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国毛片一区二区三区| 欧美videos大乳护士334| 9人人澡人人爽人人精品| 91丨九色丨蝌蚪富婆spa| 欧美一区三区四区| 久久免费精品国产久精品久久久久| 91精品国产全国免费观看| xf在线a精品一区二区视频网站| 国产精品私房写真福利视频| 国产区在线观看成人精品| 亚洲成av人片在www色猫咪| 日本欧美韩国一区三区| 成人av中文字幕| 日韩三级在线免费观看| 国产精品高潮呻吟| 极品尤物av久久免费看| 欧美在线三级电影| 国产精品美女久久久久久久网站| 亚洲国产一区二区三区青草影视| 国产盗摄女厕一区二区三区| 欧美高清视频一二三区| 欧美一级午夜免费电影| 中文字幕亚洲区| 成人免费av在线| 久久女同精品一区二区| 黄色成人免费在线| 日韩三级视频在线看| 亚洲成av人在线观看| 欧美优质美女网站| 天天色综合天天| 91精品国产综合久久国产大片| 亚洲成人第一页| 欧美一区二区人人喊爽| 捆绑调教一区二区三区| 久久久久久久久免费| 国产成人亚洲精品狼色在线 | 色综合中文综合网| 在线播放视频一区| 亚洲成a人片在线观看中文| 欧美老女人第四色| 蜜桃一区二区三区在线观看| 日韩天堂在线观看| 久久99久久久久| 亚洲精品在线观看视频| 国产精品一区二区久久不卡| 欧美激情综合五月色丁香小说| 国产麻豆日韩欧美久久| 亚洲欧洲在线观看av| 欧洲一区在线观看| 蜜臀av一区二区在线免费观看 | 欧美三级欧美一级| 亚洲成a人v欧美综合天堂下载 | 久久66热re国产| 国产欧美日韩综合| 91国产成人在线| 日本不卡的三区四区五区| 中文字幕一区在线| 色8久久精品久久久久久蜜| 日韩综合一区二区| 国产亚洲精品资源在线26u| 北条麻妃国产九九精品视频| 亚洲一区二区中文在线| 精品三级在线看| 99久久精品国产一区二区三区 | 国产suv精品一区二区三区| 亚洲精品一二三区| 精品日韩成人av| 91老司机福利 在线| 麻豆国产欧美一区二区三区| 国产精品美女久久久久久久久久久| 欧美亚洲综合久久| 国产ts人妖一区二区| 日韩福利视频网| 国产精品久久777777| 日韩欧美一级在线播放| 99九九99九九九视频精品| 捆绑调教美女网站视频一区| 亚洲人成人一区二区在线观看| 日韩精品一区二区三区在线 | 暴力调教一区二区三区| 日本欧美韩国一区三区| 亚洲男女毛片无遮挡| 久久久久久麻豆| 欧美日韩激情一区二区| 不卡一区中文字幕| 国产呦精品一区二区三区网站| 性欧美疯狂xxxxbbbb| 亚洲bdsm女犯bdsm网站| 亚洲国产精品av| 欧美xxx久久| 欧美精品黑人性xxxx| 91麻豆精品一区二区三区| 极品少妇xxxx精品少妇偷拍 | 欧美aaa在线| 亚洲在线一区二区三区| 中文字幕日本不卡| 久久久久久9999| 久久这里只有精品首页| 精品理论电影在线| 日韩精品专区在线影院观看| 欧美浪妇xxxx高跟鞋交| 在线视频欧美区| 91国偷自产一区二区开放时间 | 欧洲视频一区二区| 99综合电影在线视频| 成人少妇影院yyyy| 国产盗摄女厕一区二区三区| 国产综合色视频| 国产伦精一区二区三区| 国产一区视频网站| 国产乱人伦精品一区二区在线观看| 久久国产尿小便嘘嘘| 看片的网站亚洲| 国产麻豆精品视频| 成人午夜av在线| 成人精品一区二区三区四区| 成人激情午夜影院| 99久久精品国产毛片| 色丁香久综合在线久综合在线观看| 97久久超碰精品国产| 在线看国产日韩| 欧美精品黑人性xxxx| 日韩欧美在线影院| 国产日韩欧美电影| 亚洲图片欧美激情| 亚洲成人一区二区| 奇米四色…亚洲| 国产一区二区三区黄视频| 成人午夜电影久久影院| 在线免费观看成人短视频| 91精品国产色综合久久久蜜香臀| 欧美一区二区三区在线观看| 久久久蜜桃精品| 中文字幕在线播放不卡一区| 亚洲一二三专区| 肉色丝袜一区二区| 国产一区二区免费看| 不卡的电视剧免费网站有什么| 色综合久久久久久久久久久| 欧美日韩一区二区三区四区五区| 欧美一区二区三区在线观看视频| 久久久91精品国产一区二区精品| 中文字幕亚洲欧美在线不卡| 午夜电影久久久| 高清日韩电视剧大全免费| 91在线丨porny丨国产| 欧美一区二区三区影视| 国产精品久久久久久亚洲伦| 日日摸夜夜添夜夜添国产精品| 国产一区二区在线电影| 91久久国产最好的精华液| 337p日本欧洲亚洲大胆色噜噜| 成人欧美一区二区三区黑人麻豆 | 日韩欧美国产一区二区在线播放| 2021国产精品久久精品| 亚洲国产日韩一区二区| 国产成人亚洲精品青草天美| 欧美日韩午夜在线| 亚洲成人一二三| 国产v日产∨综合v精品视频| 6080日韩午夜伦伦午夜伦| 国产精品久久久久久久午夜片| 日本麻豆一区二区三区视频| 91丝袜高跟美女视频| 欧美精品一区视频| 亚洲aⅴ怡春院| av高清不卡在线| 久久综合色8888| 日韩精品亚洲一区二区三区免费| 粉嫩av一区二区三区| 欧美xxxxx牲另类人与| 亚洲午夜久久久久久久久久久| 国产成人午夜高潮毛片| 日韩欧美国产一区二区在线播放| 一区二区免费视频| av在线不卡网| 国产精品美女视频| 国产精品2024| 亚洲精品一区二区三区香蕉| 午夜a成v人精品| 欧美日韩精品一二三区| 一区二区免费视频| 色综合久久99| 最新国产の精品合集bt伙计| 丁香网亚洲国际| 久久色中文字幕| 国内成人免费视频| 精品国精品自拍自在线| 免费在线观看成人| 在线综合亚洲欧美在线视频| 五月天精品一区二区三区| 欧美手机在线视频| 亚洲制服丝袜av| 欧美日韩美女一区二区| 亚洲一区在线视频观看| 欧美日韩国产乱码电影| 日韩激情在线观看| 日韩视频在线永久播放| 久草在线在线精品观看| 久久精品免视看|