eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCiekawy problem iteracyjnego zwalniania głębokiego drzewaRe: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
  • Data: 2017-08-14 17:11:42
    Temat: Re: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
    Od: Borneq <b...@a...hidden.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 14.08.2017 o 16:50, M.M. pisze:
    > Jak jest ciąg węzłów z jednym potomkiem, to zwalniaj w pętli, gdy
    > są dwa, to rekurencyjnie - może to wystarczy, nie wiem co dokładnie
    > robisz. 100tys na desktop/laptop to nie jest aż tak dużo.

    No włąśnie, teeen algorytm powinien mniej więcej tak wyglądać.
    100 tys za dużo na stos, nawet 3 tysiące! przechodzi 2 tysiące

    #include <stdint.h>
    #include <random>

    const int height = 2000;
    uint8_t choos[height];

    int active = 0;

    struct Node
    {
    Node()
    {
    active++;
    for (int i=0; i<3; i++)
    children[i] = nullptr;
    }
    ~Node()
    {
    for (int i = 0; i<3; i++)
    if (children[i]) delete children[i];
    active--;
    }
    Node *children[3];
    };

    int main()
    {
    std::mt19937 gen(0);
    std::uniform_int_distribution<int16_t> dis(0, 2);
    std::uniform_int_distribution<int16_t> dis2(1, 2);
    std::uniform_int_distribution<int16_t> disoth(0, 5);
    Node *node;
    Node *child = new Node;
    Node *head = child;
    for (int i = 0; i < height; i++)
    {
    node = child;
    choos[i] = dis(gen);
    child = new Node;
    node->children[choos[i]] = child;
    if (dis(gen) == 0)
    {
    int second = (choos[i] + dis2(gen)) % 3;
    node->children[second] = new Node;
    }
    }
    delete head;
    return 0;
    }




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: