2010-11-07 1 views
-6

моя структура данных, как это:Binary Counting

+-------------+------+-------+ 
| USERID (PK) | LEFT | RIGHT | 
+-------------+------+-------+ 
|  001  |  | 002 | 
|  002  | 003 | 004 | 
|  003  | 005 |  | 
|  004  |  |  | 
|  005  | 008 | 007 | 
|  008  |  |  | 
|  007  | 009 |  | 
|  009  |  |  | 
+-------------+------+-------+ 

Эта структура данных представляет собой бинарное дерево. Каждая строка представляет собой узел, каждый из которых имеет USERID. Записи в столбцах LEFT и RIGHT представляют двух дочерних элементов этого узла, передавая их USERID с. Я хочу пересечь это дерево.

Я использую Visual Studio 2005 с базой данных Access.

+1

-1 Потому что каждое слово начинается с капитала, и это очень раздражает, чтобы попытаться понять, что вы пытаетесь сказать. – zzzzBov

+0

Попробуйте. с помощью. некоторые. знаки препинания. в виде. ну, –

+4

Я пробовал редактировать вопрос, чтобы его было легче читать, но вы по-прежнему не хватает информации - как, какой язык вы используете, и как вы хотите пересечь дерево (то есть, каков ожидаемый порядок обхода?). В будущем попробуйте отформатировать и рассказать о своих вопросах для удобства чтения. –

ответ

2

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

Более разумный способ представления идентификаторов пользователей - это простой столбец в (я думаю) таблице, в которой содержатся данные для пользователей, с индексом, который дает вам быстрый поиск. Затем «обход» вырождается до простого выбора и итерации по набору результатов.

Если вы хотите продолжить работу с текущей (IMO) структурой таблицы, то SQL не поможет вам обходить дерево. Если вы попытаетесь пересечь дерево в базе данных, вы в конечном итоге сделаете выбор для каждого узла в дереве, который будет ужасно медленным.

Лучше всего выбрать все строки таблицы, построить дерево в памяти и пройти это дерево.

+0

Прошу прощения за глупый метод, теперь я понял, перед тем как завершить этот проект, сначала я хотел бы перейти через «Концепцию трансверса дерева». Я искал в Интернете и получил много статей об этом, можете ли вы предложить мне несколько хороших книг по вычислению алгоритмов. –

+0

@Harie James - Существует множество книг по «структурам данных и алгоритмам» для разных языков программирования. Попробуйте выполнить поиск на amazon.com и просмотрите содержание и примеры разделов с помощью функции «Look Inside». –