HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

принцип работы деревьев в Си (?)
  #1  
Старый 24.07.2007, 13:01
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


По умолчанию принцип работы деревьев в Си (?)

Изучил списки структур, стек, но не могу понять принцип работы с деревьями.
Я скачал пример работы с ними - создание, чтение, сравнение, но когда разбираю пример создания - получается что запись всё время ведётся в левую ветвь. Поэтому не понимаю смысл такого дерева.

Есть одна мысль о том что запись ведётся сначала в левую ветвь, потом в правую, затем они обретают ещё по две ветки и запись ведётся по очереди в новые 4 ветки. Так делается?

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

  #2  
Старый 24.07.2007, 13:23
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

а какие деревья тебя интересуют: двоичного поиска, сбалансированные, идеально сбалансированные, общего вида или какие? я так понял двоичного вида, но тогда добавление узла ты определяешь сам... будучи деревом поиска, то влево идем если значение ключа меньше текущего узла и вправо, если наоборот.
если все время влево идет, то ты получается добавляешь в корень что-то типа последовательности "10 9 8 7"; тут дерево проявляет себя как список со сложностью поиска o(n) и смысла в дереве поиска нет вообще. читай про сбалансированные деревья.
зы на википедии по-моему все более-менее внятно написано.
 
Ответить с цитированием

  #3  
Старый 24.07.2007, 20:18
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


По умолчанию

спасибо, узнал про дерево поиска. тока как его заполняют? предварительно отсортированным массивом? и даёт ли это прирост скорости в поиске.
 
Ответить с цитированием

  #4  
Старый 24.07.2007, 23:22
da_ff
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме:
413927

Репутация: 71
По умолчанию

заполнять нада по индексу дерево поиска с учетом что индекс каждой вершный уникален для данного дерева. условие заполнения следующее если индекс эллемента подлежащего включению в дерево меньше текущего элемента дерева то перемещаемся для анализа на его левого потомка, если больше то на правого и так до тех пор пока не найдем вершину у которой будет отсутствовать тот потомок который надо проанализировать на это место его и прикрепляем. а время полного перебора если не изменяет память Ln(кол-во узлов).
не мое просто нашел на винте по теме Модуль с работы с деревьями

Последний раз редактировалось da_ff; 24.07.2007 в 23:30..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Firewall: принцип работы D=P=CH= MOD= Защита ОС: вирусы, антивирусы, файрволы. 0 02.10.2006 22:36



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.