第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

二叉樹插入問題.....insert() 只將新節(jié)點(diǎn)放入根節(jié)點(diǎn)的子節(jié)點(diǎn)中

二叉樹插入問題.....insert() 只將新節(jié)點(diǎn)放入根節(jié)點(diǎn)的子節(jié)點(diǎn)中

明月笑刀無情 2023-06-21 16:37:30
當(dāng)我用來insert()將新節(jié)點(diǎn)插入二叉樹時(shí),即使根節(jié)點(diǎn)已經(jīng)有左右子節(jié)點(diǎn),它也只會(huì)在子節(jié)點(diǎn)的位置插入新節(jié)點(diǎn)。它不是訪問子節(jié)點(diǎn)來使二叉樹更深層次。抱歉英語(yǔ)不好。class Node{    int key;    String value;    Node lc = null;    Node rc = null;    Node(int k,String v)    {           key = k;        value = v;    }    public String toString()    {        return value + "is" + key;    }}class BT{    Node root;    public void insert(int k,String v)    {        Node newnode = new Node(k,v);        if(root == null)        {               System.out.println("root");            root = newnode;             return;        }        Node n = root;        while(n != null)        {            if(newnode.key <= n.key)            {                 n = n.lc;                System.out.println("left");                if(n==null){n = newnode; break;}            }            else            {                 n = n.rc;                System.out.println("right");                if(n==null){n = newnode; break;}             }         }           System.out.println("loop ended");        return;    }    }    public class test    {    public static void main(String arg[])    {        BT list = new BT();        list.insert(19,"one");        list.insert(67,"sixtyseven");        list.insert(5,"five");        list.insert(12,"twelve");        list.insert(67,"sixtyseven");    }}
查看完整描述

2 回答

?
萬(wàn)千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

您永遠(yuǎn)不會(huì)更改lc和rc鏈接。嘗試這樣的事情:


        if(newnode.key <= n.key)

        { 

            if(n.lc==null){n.lc = newnode; break;}

            n = n.lc;

            System.out.println("left");

        }

        else

        { 

            if(n.rc==null){n.rc = newnode; break;}

            n = n.rc;

            System.out.println("right");

         } 


查看完整回答
反對(duì) 回復(fù) 2023-06-21
?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果使用遞歸呢?認(rèn)識(shí)起來就更清楚了。


public final class BinaryTree {


    private static final boolean ADD_TO_PARENT = true;

    private static final boolean ALREADY_ADDED = false; 


    private Node root;


    public void add(int key, String value) {

        Node node = new Node(key, value);


        if (add(node, root) == ADD_TO_PARENT)

            root = node;

    }


    private static boolean add(Node node, Node parent) {

        if (parent == null)

            return ADD_TO_PARENT;

        if (node.key <= parent.key) {

            if (add(node, parent.left) == ADD_TO_PARENT)

                parent.left = node;

        } else if (add(node, parent.right) == ADD_TO_PARENT)

            parent.right = node;


        return ALREADY_ADDED;

    }


    public static final class Node {


        private final int key;

        private final String value;

        private Node left;

        private Node right;


        public Node(int key, String value) {

            this.key = key;

            this.value = value;

        }


        @Override

        public String toString() {

            return value + " is " + key;

        }

    }


}


查看完整回答
反對(duì) 回復(fù) 2023-06-21
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)