eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak usunąć najlepiej element z drzewa ? › Re: Jak usunąć najlepiej element z drzewa ?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: Borneq <b...@a...hidden.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Jak usunąć najlepiej element z drzewa ?
    Date: Fri, 16 Mar 2018 00:07:31 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 33
    Message-ID: <p8eubi$mal$1@node1.news.atman.pl>
    References: <p8cgcv$bd7$1@node1.news.atman.pl> <p8d69b$p3b$1@node2.news.atman.pl>
    <p8dia4$4c4$1@node2.news.atman.pl> <p8dlhd$eah$1@node1.news.atman.pl>
    <p8drp1$d3l$1@node2.news.atman.pl> <p8ds7o$l09$1@node1.news.atman.pl>
    <p8dtuu$f4c$1@node2.news.atman.pl>
    <9...@g...com>
    <p8ee5g$6h9$1@node1.news.atman.pl>
    <9...@g...com>
    <p8epa1$hic$1@node1.news.atman.pl>
    <1...@g...com>
    <p8et3h$la0$1@node1.news.atman.pl>
    NNTP-Posting-Host: public-gprs350577.centertel.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1521155250 22869 37.47.0.178 (15 Mar 2018 23:07:30 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Thu, 15 Mar 2018 23:07:30 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
    Thunderbird/52.6.0
    In-Reply-To: <p8et3h$la0$1@node1.news.atman.pl>
    Content-Language: pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:212337
    [ ukryj nagłówki ]

    Replace:
    nie można najpierw usuwać a potem dodawać , bo w międzyczasie zmieniłoby
    się drzewo. Trzeba sklonować, potem usunąć i wstawić.
    void InsertOneChild(int index, shared_ptr<Node> node)
    {
    childs.insert(childs.begin() + index, node);
    node->parent = this;
    }

    void ReplaceChild(int index, shared_ptr<Node> subtree)
    {
    shared_ptr<Node> clone = subtree->cloneTree();
    deleteChild(index);
    InsertOneChild(index, clone);
    clone->setLevel(level + 1);
    }


    int main()
    {
    shared_ptr<Node>root,rootB;
    root = make_shared<Node>("1");
    root->AddTree(make_shared<Node>("2"));
    root->AddTree(make_shared<Node>("3"));
    root->at(0)->AddTree(make_shared<Node>("4"));
    root->at(0)->AddTree(make_shared<Node>("5"));
    root->at(1)->AddTree(make_shared<Node>("6"));
    root->at(1)->AddTree(make_shared<Node>("7"));
    root->print();
    root->ReplaceChild(0,root);
    root->print();
    return 0;
    }

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 16.03.18 14:26 M.M.

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: