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
- Data Format
- Includes a list of formats for tree-like data.
- Decision Trees
- What's wrong with the tree widgets?
- 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
- tdom
- An implementatio of the DOM.
- Tree Objects
- discussed by Clif Flynt
- Various useful Tcl packages (Rempel)
- Includes some tree operation packages
- A Tree class using TclOO, by Tom Krehbiel
- An experimental tree structure, by Marco Maggi
- Simple tree structure, by rui
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
- 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
- Tree Widget, by Brighton
- An Iwidgets tree widget.
- Tree widget, by Mutlu: An Iwidgets version tree widget
- Pryce's itk widget base class
- tktree
- GRIDPLUS
- Includes a basic scrollable tree widget
- A Minimal Tree Widget
- gnocl::tree
Browsers
- A little RSS browser
- A little XML browser, by RS
- Tree nodes in motion
- Move nodes on a Bwidget tree.
- LemonTree
- Trees as nested lists
- An exploration of both structural approaches for trees, along with some simple graphical interfaces.
- Displaying Tree Hierarchy with Incremental Node Numbering
Techniques
- Simple tree layout, by Richard Suchenwirth
- How to display a tree structure on a canvas.
Visualizations
- Pythagoras Tree
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....