A ''tree'' is an acyclic directed-[graph] [data structure] where one node (the root) has no predecessor, and all other nodes have exactly one predecessor. Trees can be used, e.g., for representing the result in syntax parsing. An [XML] document is structured as a tree. ** See Also ** [Decision Trees]: [What's wrong with the tree widgets?]: [https://groups.google.com/forum/#!topic/comp.lang.tcl/7A1BjFVsgJE%|%Best Tree Widget], [comp.lang.tcl], 2009-03-11: A discussion between Martyn, Ruediger, and Alexander ** Types of Trees ** [RBTree]: red-black tree data type ** Implementations ** [Tcllib struct tree]: [Containers], by Iain B. Findleton: [ODIE]: Includes tools for data tree maintenance [Tree Objects]: discussed by [Clif Flynt] [Various useful Tcl packages (Rempel)]: Includes some tree operation packages ** Graphical User Interfaces ** [Tree nodes in motion]: Move nocdes on a [Bwidget::Tree%|%Bwidget tree]. [A little XML browser], by RS: [starDom], by [RS]: A little [XML] browser packaged as a [starkit] [LemonTree]: [Trees as nested lists]: An exploration of both structural approaches for trees, along with some simple graphical interfaces. ** Widgets ** [BWidget::Tree]: A tree widget. More accessible for beginners. Featurs edit capabilities. [TkTreeCtrl]: A multicolumn, hierarchical listbox widget. Complex for beginners. [Hipp miscellaneous widgets]: Includes some tree widgets. [mtree widget]: [BLT]: [Tix]: [ClassyTk]: [incr widgets]: Includes a ''hierarchy'' widget [mkWidgets]: [PRS Open Source Software]: [Zinc]: [http://oomadness.tuxfamily.org/p-treewidget.php%|%TreeWidget]: A pure-[Python] tree widget for [Tkinter] [Tk Tree Widget in C++]: [tkgcv]: [hierarchy]: [Tree Table]: born2net's [Iwidgets] version of Hipp's tree widget: Brighton's Iwidgets tree widget: Mutlu's Iwidgets version of a tree widget: Pryce's itk widget base class: [tktree]: [GRIDPLUS]: Includes a basic scrollable tree widget ** description ** [AMG]: A tree is sometimes called a DAG because it is a directed acyclic graph. I find this to be a useful mnemonic. [NEM]: Well, all trees are DAGs, but not all DAGs are trees. [AMG]: Yes, quite right; see the other tree properties listed in the first line of this page. ---- [LV] In the following text, I notice a number of cases where GUI widget sets have some sort of '''tree''' widget. In each of these cases, is the data structure intermingled with the data representation? Seems a shame that someone doesn't just build a graphically viewable widget that depends on a data structure that is separate. That way, someone could do work with one piece of code, and then, in other pieces, display that data. Seems like a natural method of developing and maintaining code.... <> Arts and Crafts of Tcl-Tk Programming | Command | tcllib | struct | Data Structure