2013-06-04 3 views
0

Я хочу создать дерево AVL в tcl. Я читал, что в Tcl мы не можем иметь структуры, которые содержат ссылки на самих себя, как в C.Создание деревьев в tcl

struct tree{ 
    tree *treelink; 
} 

Я хочу, чтобы иметь возможность создавать деревья без использования OTcl. Это возможно и как?

ответ

2

Вам повезло. Я написал один для Rosetta Code неделю назад. Код достаточно длинный, чтобы я не повторял его здесь, но не стесняйтесь его принимать и адаптировать. Я бы не использовал его в производстве. Массивы и словари предоставляют те же ключевые абстрактные операции (вставка, удаление, поиск, обновление, перечисление) и прекрасно работают со своей встроенной реализацией.

+0

Лицензия на этот код является формально GFDL из-за того, что она находится на RC, но я даю разрешение считать ее под лицензией BSD Tcl-flavor. –

+0

О, это ты написал этот код. Огромное спасибо. Ты обалденный!! Но проблема, с которой я столкнулся, заключалась в том, что «пакет требует TclOO», который дает ошибку «не может найти пакет TclOO» в ubuntu. Я не смог установить его правильно. –

+0

@Chhama Код должен быть относительно легко адаптироваться к Itcl, XOTcl или Snit; на самом деле он не использует ничего очень необычного (самый причудливый бит - специальный корневой «nil» дозорный, который является всего лишь конкретным объектом). –

Смежные вопросы