-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: Andyy <n...@s...tego>
Newsgroups: pl.comp.programming
Subject: Re: Jak zamienić ścieżki na strukturę drzewiastą?
Date: Sat, 25 Feb 2017 10:16:50 +0100
Organization: ATMAN - ATM S.A.
Lines: 46
Message-ID: <o8ri21$q78$1@node1.news.atman.pl>
References: <o8q6ur$fhk$1@node1.news.atman.pl> <o8q73o$fhk$2@node1.news.atman.pl>
<o8q82k$a99$1@node2.news.atman.pl>
NNTP-Posting-Host: 91.239.205.105
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node1.news.atman.pl 1488014209 26856 91.239.205.105 (25 Feb 2017 09:16:49
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Sat, 25 Feb 2017 09:16:49 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101
Thunderbird/45.7.1
In-Reply-To: <o8q82k$a99$1@node2.news.atman.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:210280
[ ukryj 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ć.
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-05-01 twardy dysk stuka
- 2024-04-30 Oclenie alkalicznych akumulatorów
- 2024-04-30 Zniknął dźwięk na tylnym panelu
- 2024-04-30 Białystok => Inżynier DevOps (projekt JP) <=
- 2024-04-30 Kraków => Mid PHP Developer (Laravel) <=
- 2024-04-30 Katowice => Junior HelpDesk <=
- 2024-04-30 trzecia plec
- 2024-04-30 Katowice => Junior HelpDesk <=
- 2024-04-30 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-04-30 Białystok => Technical Leader (Java Background) <=
- 2024-04-30 Białystok => ERP Implementer <=
- 2024-04-30 Powerbank jednonapieciowy, a trzynapieciowy
- 2024-04-30 Który program do PIT-ów?
- 2024-04-30 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-04-30 Warszawa => Konsultant funkcjonalny systemu Oracle E-Business Suite R1