На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Бинарное дерево ( не BST ) с ответами для пользователя формата ДА-НЕТ , мини эксп.сист.
    Всем хай! Сходу к делу!

    Есть некая предметная область ( любая в принципе ). Пользователю задается вопрос, который имеет ТОЛЬКО 2 ответа: ДА/НЕТ. В зависимости от ответа задается новый вопрос или типа "решения нет" ( аля тупик ). И так продолжается, пока не будет получено "решение" или "решения нет".

    Для всего этого нужна структура данных бинарное дерево ( не поисковое ). Информационное поле - сам вопрос. Левый указатель - если пользователь ответил "НЕТ", правый - ответил "ДА.

    =======================================================

    Вот есть у меня список вопросов, допустим 30 шт. Листьев в дереве получилось 9 шт. ( для примера ): из них 5ти "есть решение" и для 4рех "нет решения".

    А мне вот не до конца понятно, по какому принципу СТРОИТЬ это дерево? Оно НЕ поисковое.
    Нужен какой-то формат ( типа с какими-то отступами ) в файле, чтобы определять "смещение" при добавлении в дерево?

    Или проще назначить каждому вопросу некое число и превратить двоичное дерево в ПОИСКОВОЕ? Понятно, что перед этим нужно детально проработать структуру вопросов ( дерева ). Понятно, что при добавлении нового вопроса, возможно, потребуется полное перестроение дерева с его числовыми метками.

    спс. за внимание

    Добавлено
    для примера, возьмем диалог с пользователем о покупке дров
    строим дерево:

    ExpandedWrap disabled
      tree.Insert( "Нужны березовые дрова?", 50 );   // корень
      tree.Insert( "Нужны сосновые дрова?", 25 );
      tree.Insert( "Планируете забрать дрова самовывозом?", 75 );
      tree.Insert( "На данный момент в наличии только березовые или сосновые дрова. Ничем не можем вам помочь!", 12 );


    и т.д.
    Сообщение отредактировано: FasterHarder -
      А снабдите просто варианты ответов индексами. Где -1 = решения нет, 0 = решение, 1 .. N = следующий вопрос с индексом 1 .. N соответственно

      т.е. в вашем наборе вопросов самый первый будет "Решения нет" и будет с индексом -1, второй "Решено" c индексом 0, а далее некоторый набор вопросов с двумя числами [индекс если ответ да и нет].
      Сообщение отредактировано: macomics -
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0229 ]   [ 15 queries used ]   [ Generated: 7.10.24, 17:22 GMT ]