示例#1
0
        //inizializza l'albero
        private void initTree(int depth, int split_size)
        {
            //inizializza la radice
            Vertex root = new Vertex();

            root.NameVertex = "v1";
            attrCreate(root);

            listV.Add(root);

            //vertice di appoggio
            temp_vertex tmp = new temp_vertex(root.NameVertex, 1);

            tmpVert.Add(tmp);

            //iterazioni breath-first per l'istanziazione dell'albero
            int tmpSplit = split_size;

            while (depth > tmp.level)
            {
                while (tmpSplit != 0)
                {
                    createVertex(tmp.name_vertex, tmp.level);
                    tmpSplit -= 1;
                }
                tmpSplit = split_size;

                //dopo aver generato tutti i figli di un vertice, questo può essere dalla lista di appoggio
                tmpVert.Remove(tmp);
                tmp = tmpVert.First();
            }
        }
示例#2
0
        //crea un nodo
        private void createVertex(string padre, int lev)
        {
            //inizializza nodo
            Vertex nodo = new Vertex();

            nodo.NameVertex = "v" + (1 + int.Parse(tmpVert.Last().name_vertex.Substring(1)));
            attrCreate(nodo);

            listV.Add(nodo);

            temp_vertex tmp = new temp_vertex(nodo.NameVertex, lev + 1);

            tmpVert.Add(tmp);

            createEdge(padre, nodo);
        }