Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #29452

Re: Jak zamienić ścieżki na strukturę drzewiastą?

From Andyy <nie@spamowac.tego>
Newsgroups pl.comp.programming
Subject Re: Jak zamienić ścieżki na strukturę drzewiastą?
Date 2017-02-25 10:16 +0100
Organization ATMAN - ATM S.A.
Message-ID <o8ri21$q78$1@node1.news.atman.pl> (permalink)
References <o8q6ur$fhk$1@node1.news.atman.pl> <o8q73o$fhk$2@node1.news.atman.pl> <o8q82k$a99$1@node2.news.atman.pl>

Show all headers | View raw


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ć.

Back to pl.comp.programming | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

Jak zamienić ścieżki na strukturę drzewiastą? Andyy <nie@spamowac.tego> - 2017-02-24 22:01 +0100
  Re: Jak zamienić ścieżki na strukturę drzewiastą? Andyy <nie@spamowac.tego> - 2017-02-24 22:03 +0100
    Re: Jak zamienić ścieżki na strukturę drzewiastą? bartekltg <bartekltg@gmail.com> - 2017-02-24 22:20 +0100
      Re: Jak zamienić ścieżki na strukturę drzewiastą? Andyy <nie@spamowac.tego> - 2017-02-25 10:16 +0100

csiph-web