singlepost

деревья в С++ << На главную или назад  

доброе время суток всем!
помогите пожалуста с небольшим вопросом.
в программе делала копию дерева все получилось, атеперь нужно удалить минимальный лист, т.е. как я понимаю это самы левый нижний (дерево поиска),
poisk (tree**r tree**pr)
{ if(r)
{pr=r;
poisk (tre–>left; &pr)…
дальше не получается, т.к он не запоминает значение предыдущего элемента… как быть…
заранее спасибо за помощь=)

23 ответов в теме “деревья в С++”

  1. 8
    Кирилл Быков ответил:

    Леонид, боюсь, вас здесь не поймут. Просто выполните среднюю оценку показателя ASCII(49h) ASCII(51h) по той части дискуссии что до вашего поста.

  2. 7
    Леонид Максимов ответил:

    а для меня загадкой является вот эта строчка:
    poisk (tre–>left; &pr)…
    что она означает?

    кстати, если дерево у вас не самобалансирующееся, то для его обхода постарайтесь обойтись без рекурсии.

  3. 6
    Алексей Гридин ответил:

    двойной указатель, чтобы можно было не только данные по значению указателя менять, но и сам указатель.

  4. 5
    Антон Кононов ответил:

    или так:

    poisk (tree* r, tree* pr)
    {
    if (r->left) { poisk(r->left, r); } else { а тут выводим на экран, что мы наткнулись на элемент r, но у него нет левого =)}
    }

  5. 4
    Антон Кононов ответил:

    если r и pr уже являются указателями тогда:

    poisk (tree* r, tree* pr)
    {
    if (r) { poisk(r->left, r); }
    }

    так как для каждого следующего вызова предыдущим значением будет текущий, то и в качестве предыдущего в вызов поиска передаем текущий, то есть r

    что не так то?

  6. 3
    Евгений Гаврин ответил:

    Ну так сохраняйте значение предыдущего элемента – в чем проблема то?

  7. 2
    Настя Соломатова ответил:

    это что-то типа указателя на указатель дерева ( честно, масло масленое)…
    pr- предыдущий элемент
    r- последний..
    последняя строчка с опечаткой * poisk (tree–>left; &pr)…

  8. 1
    Антон Кононов ответил:

    а чо за двойной указатель: (**) ? я такого не знаю. думал пишут
    poisk (tree* r, tree* pr)
    только что тут что? pr – это предыдущий что ли?

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.