eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCiekawy problem iteracyjnego zwalniania głębokiego drzewaRe: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: Borneq <b...@a...hidden.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
    Date: Mon, 14 Aug 2017 18:56:57 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 49
    Message-ID: <omskoo$nkv$1@node2.news.atman.pl>
    References: <oms9l6$db4$1@node2.news.atman.pl>
    <d...@g...com>
    <omsd0p$g87$1@node2.news.atman.pl> <omsd87$g87$2@node2.news.atman.pl>
    <7...@g...com>
    <omseqa$hoj$2@node2.news.atman.pl>
    <7...@g...com>
    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: node2.news.atman.pl 1502729816 24223 91.239.205.105 (14 Aug 2017 16:56:56
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Mon, 14 Aug 2017 16:56:56 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
    Thunderbird/52.2.1
    In-Reply-To: <7...@g...com>
    Content-Language: pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:211060
    [ ukryj nagłówki ]

    W dniu 14.08.2017 o 17:50, M.M. pisze:
    > Bez debugowania tak:
    > remove( node ) {
    > while( node ) {


    Poprawiona metoda działa, ale zagłębia się za bardzo, bo często
    childCount > 1, tyle że inne gałęzie są krótkie a jedna czy kilka długie.

    void remove(Node *node)
    {
    while (true) {
    int childCount = 0;
    int numberOneChild = -1;
    for (int i = 0; i < 3; i++)
    {
    if (node->children[i])
    {
    childCount++;
    numberOneChild = i;
    }
    }

    if (childCount > 1)
    {
    for (int i = 0; i < 3; i++)
    if (node->children[i])
    {
    tuheight++;
    remove(node->children[i]);
    tuheight--;
    }
    delete node;
    return; //<--- z debugowania wychodzi tu return
    }
    else if (childCount == 1)
    {
    Node *tmp = node;
    node = node->children[numberOneChild];
    delete tmp;
    }
    else
    {
    delete node;
    return;
    }
    }
    }

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

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: