Beispiel #1
0
        private void generateChildNodesStruct(ref treeNode1 tmpNode, Random rd, int nodecount, int layer)
        {
            tmpNode._children = new object[nodecount];

            for (int i = 0; i < nodecount; i++)
            {
                treeNode1 t = new treeNode1();
                t.father             = tmpNode;
                t.data               = rd.Next(100);
                tmpNode._children[i] = t;
            }

            for (int i = 0; i < nodecount; i++)
            {
                treeNode1 t = (treeNode1)tmpNode._children[i];
                if (t.maxLayer() < layer)
                {
                    generateChildNodesStruct(ref t, rd, nodecount, layer);
                }
                else
                {
                    if (i == nodecount - 1)
                    {
                        lastNode = t;
                    }
                }
            }
        }
Beispiel #2
0
            public int maxLayer()
            {
                treeNode1 t = this;
                int       i = 0;

                while (hasFNode(t))
                {
                    i++;
                    t = t.father;
                }
                return(i);
            }
Beispiel #3
0
            public long calculateSelf()
            {
                long rtn = data;

                //Console.WriteLine(data);
                if (_children != null)
                {
                    foreach (object i in _children)
                    {
                        treeNode1 t = (treeNode1)i;
                        rtn += t.calculateSelf();
                    }
                }
                return(rtn);
            }
Beispiel #4
0
            public long calculateSelf2()
            {
                long rtn = 0;

                //Console.WriteLine(data);
                if (father.data != -100000)
                {
                    foreach (object i in father._children)
                    {
                        treeNode1 t = (treeNode1)i;
                        Console.WriteLine(t.data);
                        rtn += t.data;
                    }
                }
                return(rtn);
            }
Beispiel #5
0
        private void button2_Click(object sender, EventArgs e)
        {
            treeNode1 tmpNode = new treeNode1();

            tmpNode.data = 100000;

            treeNode1 father = new treeNode1();

            father.data    = -100000;
            tmpNode.father = father;

            int nodecount = Convert.ToInt16(textBox2.Text);
            int layer     = Convert.ToInt16(textBox3.Text);

            generateChildNodesStruct(ref tmpNode, new Random(), nodecount, layer);

            Console.WriteLine("+++++++++++++++++=" + lastNode.calculateSelf());
        }
Beispiel #6
0
 private bool hasFNode(treeNode1 node)
 {
     return(node.father.data != -100000);
 }