コード例 #1
0
        public void displayTree(TSBNode node)
        {
            string sb, son;

            if (node != null)
            {
                if (node.getBroNode() == null)            //判断该结点的兄弟结点是否为空,若为空则显示null,若不空则显示它的值
                {
                    sb = "Null";
                }
                else
                {
                    sb = node.getBroNode().getValue().ToString();
                }

                if (node.getSonNode() == null)        ////判断该结点的孩子结点是否为空,若为空则显示null,若不空则显示它的值
                {
                    son = "Null";
                }
                else
                {
                    son = node.getSonNode().getValue().ToString();
                }

                mystr += node.getValue().ToString() + "\t\t\n" + son + "\t\t\t\n" + sb + "\r\n";
                displayTree(node.getSonNode());
                displayTree(node.getBroNode());
            }
        }
コード例 #2
0
        public TSBNode insertBroNode(TSBNode targetNode, string value)  //插入兄弟结点
        {
            TSBNode nowBroNode = new TSBNode(value, null, null);
            TSBNode preBroNode = targetNode.getBroNode();

            if (preBroNode != null)
            {
                nowBroNode.setBroNode(targetNode.getBroNode());   //先前的兄弟变成现在兄弟的兄弟,然后再添加兄弟
            }
            targetNode.setBroNode(nowBroNode);
            return(nowBroNode);
        }
コード例 #3
0
        public TSBNode searchValue(TSBNode node, string value)  //返回查找到的结点
        {
            TSBNode temp;

            if (node == null)
            {
                return(null);
            }
            else if (node.getValue() == value)
            {
                return(node);
            }
            else
            {
                temp = searchValue(node.getSonNode(), value);
                if (temp != null)
                {
                    return(temp);
                }
                else
                {
                    return(searchValue(node.getBroNode(), value));
                }
            }
        }
コード例 #4
0
        public int getCount(TSBNode node)       //得到树的结点个数的递归算法
        {
            int cs, cb;

            if (node == null)
            {
                return(0);
            }
            else
            {
                cs = getCount(node.getSonNode());
                cb = getCount(node.getBroNode());
                return(cs + cb + 1);              //加1是因为根结点没有在统计中
            }
        }