eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak zamienić ścieżki na strukturę drzewiastą? › Re: Jak zamienić ścieżki na strukturę drzewiastą?
  • Data: 2017-02-25 10:16:50
    Temat: Re: Jak zamienić ścieżki na strukturę drzewiastą?
    Od: Andyy <n...@s...tego> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 24.02.2017 o 22:20, bartekltg pisze:
    > Potem drzewo budujesz przechocząc taki zestaw stringów,
    > jeśli kolejny element jest taki jak istneijący potomek
    > wierzchołka, w który jesteś, wchodzisz w niego, jeśli
    > nie, dodajesz do drzewa.
    >
    > W sumie to nie wymaga ani przerobienia stringa na
    > wektor strongów, ani sortowania.

    internal void make(Chunk chunk)
    {
    this.chunk = chunk;
    List<ItemArch> list = makePathList();
    root = new Node();
    foreach (ItemArch elem in list)
    {
    Node node = root;
    foreach (string part in elem.parts)
    {
    Node node1 = node.search(part);
    if (node1 != null) node = node1;
    else node = node.add(part);
    }
    node.index = elem.index;
    }
    }

    Długotrwała jest operacja search, ale gdy mamy posortowane, to jeśłi
    znajdzie to zawsze ostatni, co sprawdziłem dla Assert:
    internal Node search(string name)
    {
    if (childs == null) return null;
    for (int i=0; i<childs.Count; i++)
    {
    Node child = childs[i];
    if (child.name == name)
    {
    Debug.Assert(i== childs.Count-1);
    Console.WriteLine("found at "+i+" where size="+
    childs.Count);
    return child;
    }
    }
    return null;
    }
    Czyli można zoptymalizować.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: