Tree structure: Difference between revisions

Content deleted Content added
Dysprosia (talk | contribs)
Removing May merge template; no case made; no support
 
(359 intermediate revisions by more than 100 users not shown)
Line 1:
{{short description|Way of representing the hierarchical nature of a structure in a graphical form}}
[[nl:boomstructuur]]
{{more footnotes|date=July 2014}}
[[Category:Trees]]
[[File:Binary tree structure.svg|300px|thumb|A tree structure showing the possible hierarchical organization of an encyclopedia]]
[[File:ENC SYSTEME FIGURE.jpeg|300px|thumb|The original [[Encyclopédie]] (1752) used a tree diagram to show the way in which its subjects were ordered.]]
A '''tree structure''', '''tree diagram''', or '''tree model''' is a way of representing the [[hierarchy|hierarchical]] nature of a [[structure]] in a graphical form. It is named a "tree structure" because the classic [[#Representing trees|representation]] resembles a [[tree]], although the chart is generally upside down compared to a biological tree, with the "stem" at the top and the "leaves" at the bottom.
 
A tree structure is conceptual, and appears in several forms. For a discussion of tree structures in specific fields, see [[Tree (data structure)]] for computer science; insofar as it relates to graph theory, see [[tree (graph theory)]] or [[tree (set theory)]]. Other related articles are listed below.
A '''tree structure''' is a way of representing the [[hierarchy|hierarchical]] nature of a [[structure]] in a graphical form.
It is named a "tree structure" because the graph looks a bit like a [[tree]], even though the tree is generally shown upside down compared with a real tree; that is to say with the root at the top and the leaves at the bottom.
 
==Terminology and properties==
In terms of [[graph theory|graph theory]], a tree can be described as a "connected directed acyclic graph." A collection of unconnected tree structures is sometimes described by graph theorists as a "forest."
The tree elements are called "[[Node (computer science)|node]]s".
See [[tree (graph theory)]] for more mathematical background behind a tree structure.
The lines connecting elements are called "branches".
Nodes without children are called [[leaf node]]s, "end-nodes", or "leaves".
 
Every [[Finite set|finite]] tree structure has a member that has no [[superior (hierarchy)|superior]]. This member is called the "root" or [[root node]]. The root is the starting node. But the converse is not true: infinite tree structures may or may not have a root node.
The converse is not true: infinite tree structures may have a root node.
 
The names of relationships between nodes model the [[kinship terminology]] of family relations. The gender-neutral names "parent" and "child" have largely displaced the older "father" and "son" terminology. The term "uncle" is still widely used for other nodes at the same level as the parent, although it is sometimes replaced with gender-neutral terms like "ommer".<ref>{{cite web |title=Ethereum Glossary |url=https://github.com/ethereum/wiki/wiki/Glossary |website=GitHub |access-date=17 April 2019 |archive-date=25 April 2019 |archive-url=https://web.archive.org/web/20190425135357/https://github.com/ethereum/wiki/wiki/Glossary |url-status=live }}</ref>
<div style="width:302px; float:right; margin-left:1em">
[[Image:binary-tree-structure.png|Binary tree structure illustration]]<br>
''Illustration: A tree structure showing the possible hierarchical organization of an encyclopedia. This specific example happens to be a [[complete binary tree]], which means all nodes have exactly zero or two child nodes.''
</div>
 
* A node's "parent" is a node one step higher in the hierarchy (i.e. closer to the root node) and lying on the same branch.
The lines connecting elements are called "branches," the elements themselves are called "[[node|nodes]]."
* "Sibling" ("brother" or "sister") nodes share the same parent node.
Nodes without children are called "end-nodes" or "leaves."
* A node's "uncles" (sometimes "ommers") are siblings of that node's parent.
* A node that is connected to all lower-level nodes is called an "ancestor". The connected lower-level nodes are "descendants" of the ancestor node.
 
In the example, "encyclopedia" is the parent of "science" and "culture", its children. "Art" and "craft" are siblings, and children of "culture", which is their parent and thus one of their ancestors. Also, "encyclopedia", as the root of the tree, is the ancestor of "science", "culture", "art" and "craft". Finally, "science", "art" and "craft", as leaves, are ancestors of no other node.
The names of relationships between nodes are modeled after family relations.
In computer science, traditionally only names for male family members had been used.
In linguistics, the names of female family members are used. It is said that this was an express countermovement to the traditional naming convention, started by the female students of linguist [[Noam Chomsky]].
However, nowadays, in computer science at least, the gender-neutral names "parent" and "child" have largely displaced the older "father" and "son" terminology.
 
Tree structures can depict all kinds of [[Taxonomy (general)|taxonomic]] knowledge, such as [[family tree]]s, the biological [[evolutionary tree]], the [[Indo-European languages#Classification|evolutionary tree of a language family]], the [[Generative grammar#Context-free grammars|grammatical structure]] of a language (a key example being S → NP VP, meaning a sentence is a noun phrase and a verb phrase, with each in turn having other components which have other components), the way web pages are logically ordered in a web site, [[Tree of primitive Pythagorean triples|mathematical trees of integer sets]], et cetera.
The starting node is often called the "root."
 
The [[Oxford English Dictionary]] records use of both the terms "tree structure" and "tree-diagram" from 1965 in [[Noam Chomsky]]'s ''[[Aspects of the Theory of Syntax]]''.<ref>
* A node is a "parent" of another node if it is one step higher in the hierarchy and closer to the root node.
{{OED | tree}}
* "Sibling" ("brother" or "sister") nodes share the same parent node.
</ref>
* A node that is connected to all lower-level nodes is called an "ancestor."
 
In a tree structure there is one and only one [[path (graph theory)|path]] from any point to any other point.
In the example, "encyclopedia" is the parent of "science" and "culture," its children. "Art" and "craft" are siblings, and children of "culture."
 
[[Computer science]] uses tree structures extensively (''see'' [[Tree (data structure)]] and [[telecommunications]].)
Tree structures are used to depict all kinds of [[taxonomy|taxonomic]] knowledge, such as family trees, the [[Evolutionary tree]], the grammatical structure of a language (the famous example being S -> NP VP, meaning a sentence is a noun phrase and a verb phrase), the way web pages are logically ordered in a web site, et cetera.
 
For a formal definition see [[Tree (set theory)|set theory]], and for a generalization in which children are not necessarily successors, see [[prefix order]].
Trees have a number of interesting properties:
* The root node, <i>i.e.,</i> the base node, is an ancestor of all the other nodes.
* In a tree structure there is one and only one [[path]] from any point to any other point.
 
Tree structures are used extensively in [[computer science]] and [[telecommunications]].
 
== Examples of tree structures ==
[[File:Tree Map.png|thumb|A tree map used to represent a [[directory structure]] as a [[nested set]] ]]
* Internet: [[usenet hierarchy]], [[Yahoo! subject index]], [[Open Directory Project]]
[[File:1934-Thermionic-Tube-Chart.jpg|thumb|A diagram in the shape of a tree illustrating the "evolution" of thermionic tubes (a type of vacuum tube) between 1883 and 1934]]
* Information management: [[Dewey Decimal System]]
 
* Internet:
** [[usenet hierarchy]]
** [[Document Object Model]]'s logical structure,<ref>{{cite web |url=http://www.w3.org/TR/DOM-Level-2-Core/introduction.html |title=What is the Document Object Model? |access-date=2006-12-05 |work=W3C Architecture ___domain |archive-date=2012-02-12 |archive-url=https://web.archive.org/web/20120212033934/http://www.w3.org/TR/DOM-Level-2-Core/introduction.html |url-status=live }}</ref> [[Yahoo!]] subject index, [[Curlie]]
* [[Operating system]]: [[directory structure]]
* Information management: [[Dewey Decimal Classification|Dewey Decimal System]], [[Polythematic Structured Subject Heading System|PSH]], this hierarchical bulleted list
* Management: hierarchical [[organization]]al structures
* Computer Sciencescience:
** [[binary search tree]]
** [[red–black tree]]
** [[AVL tree]]
** [[R-tree]]
** [[doubly logarithmic tree]]
* Biology: [[evolutionary tree]]
* Business: [[pyramid selling scheme]]
* Project management: [[work breakdown structure]]
* Linguistics:
** (Syntax) [[Phrase structure rules|Phrase structure trees]]
** (Historical Linguistics) [[Tree model]] of language change
* Sports: [[business chess]], [[Bracket (tournament)|playoffs brackets]]
* Mathematics: [[Von Neumann universe]]
* Group theory: [[Descendant tree (group theory)|descendant trees]]
 
== Representing trees ==
There are many ways of visually representing tree structures.
Almost always, these boil down to variations, or combinations,
of a few basic styles:
 
=== Classical node-link diagrams ===
== Related terms ==
Classical node-link diagrams, that connect nodes together with line segments:
 
<div style="float:left;clear:right;margin:0.2em 0 0.2em 1em;border:1px solid silver;border-radius: 1em;">
{| border="0" style="border-collapse:collapse;text-align:center;"
|-
! colspan="3" style="padding:0 0.5em;" | encyclopedia
|-
! colspan="2" style="padding:0 0.5em;" | /<br/>culture
! style="padding:0 0.5em;" | \<br/>science
|-
! style="padding:0 0.5em;" | /<br/>art
! style="padding:0 0.5em;" | \<br/>craft
|}</div>
 
{{-}}
 
=== Nested sets ===
[[Nested set collection| Nested sets]] that use enclosure or containment to show parenthood; examples include [[treemapping|TreeMaps]], [[fractal space map|fractal maps]], and [[Euler diagram|Euler diagrams]]:
 
<div style="float:left;clear:right;text-align:center;margin:0.2em 0 0.2em 1em;padding:0.5em 1em 1em 1em;border:1px solid silver;border-radius: 1em;">
{| border="0" style="border-collapse:collapse;text-align:center;"
|-
! height="8px" | [[File:Blank.png]]
! rowspan="2" | encyclopedia
|-
! width="20px" style="border-width:1px 0 0 1px;border-style:solid;" | [[File:Blank.png]]
! width="20px" style="border-width:1px 1px 0 0;border-style:solid;" | [[File:Blank.png]]
|-
! colspan="3" style="border-width:0 1px 1px 1px;border-style:solid;" |
{| border="0" style="border-collapse:collapse;"
|-
!
{| border="0" style="border-collapse:collapse;margin:0 0.5em 0.5em 0.5em;text-align:center;"
|-
! height="8px" | [[File:Blank.png]]
! rowspan="2" | culture
|-
! style="border-width:1px 0 0 1px;border-style:solid;" | [[File:Blank.png]]
! style="border-width:1px 1px 0 0;border-style:solid;" | [[File:Blank.png]]
|-
! colspan="3" style="border-width:0 1px 1px 1px;border-style:solid;" | art &nbsp; craft
|}
! science&nbsp;
|}
|}</div>
{{clear}}
 
=== Layered "icicle" diagrams ===
Layered "icicle" diagrams that use alignment/adjacency.
<div style="float:left;clear:right;text-align:center;margin:0.2em 0 0.2em 1em;padding:1em;border:1px solid silver;border-radius: 1em;">
{| border="1" style="border:none;border-collapse:collapse;rules:all;text-align:center;"
|-
! colspan="3" | encyclopedia
|-
! colspan="2" | culture
! science
|-
! art
! craft
|}</div>
{{clear}}
 
=== Outlines and tree views ===
{{anchor|Outlines|Tree views}}
Lists or diagrams that use indentation, sometimes called "[[Outline (hierarchical)|outline]]s" or "[[tree view]]s".
 
An outline:
<div style="float:left;clear:right;margin:0.2em 0 0.2em 1em;padding:0 1em;border:1px solid silver;border-radius: 1em;">
:'''encyclopedia'''
::'''culture'''
:::'''art'''
:::'''craft'''
::'''science'''
</div>
{{clear}}
 
A tree view:
<div style="float:left;margin:0.2em 0 0.2em 1em;padding:0 1em;border:1px solid silver;border-radius: 1em;">
{{Tree list}}
*'''encyclopedia'''
**'''culture'''
***'''art'''
***{{Tree list/final branch}}'''craft'''
**{{Tree list/final branch}}'''science'''
{{Tree list/end}}
</div>
{{clear}}
 
{{clear right}}
 
=== Nested parentheses ===
{{See also|Newick format|Dyck language}}
A correspondence to nested parentheses was first noticed by Sir [[Arthur Cayley]]:
<div style="float:left;clear:right;text-align:center;margin:0.2em 0 0.2em 1em;padding:0 1em;border:1px solid silver;border-radius: 1em;">
'''((art,craft)culture,science)encyclopedia'''<br />
or<br />
'''encyclopedia(culture(art,craft),science)'''
</div>
{{clear}}
 
=== Radial trees ===
{{See also|Radial tree}}
Trees can also be [[Radial tree|represented radially]]:
<div style="float:left;clear:right;margin:0.2em 0 0.2em 1em;border:1px solid silver;border-radius: 1em;">
{| border="0" style="border-collapse:collapse;margin:1em;text-align:center;"
|-
! art<br/>&nbsp; &nbsp; &nbsp; \
! craft<br/>/ &nbsp; &nbsp;
|-
! colspan="2" | culture<br/>|
|-
! colspan="2" style="font-size:125%;" | encyclopedia
|-
! colspan="2" | |<br/>science
|}</div>
{{clear}}
 
== See also ==
;Kinds of trees:
* [[B-tree]]
* [[rootedDancing hierarchytree]]
* [[Decision tree data structure]]
* [[Left-child right-sibling binary tree]]
* [[tree (graph theory)]]
* [[Porphyrian tree]]
* [[Tree (data structure)]]
* [[Tree (graph theory)]]
* [[Tree (set theory)]]
 
;Related articles:
* [[Data drilling]]
* [[Hierarchical model]]: [[Hierarchical clustering|clustering]] and [[Hierarchical query|query]]
* [[Tree testing]]
 
== References ==
<references />
 
== Further reading ==
Identification of some of the basic styles of tree structures can be found in:
*[[Jacques Bertin]], ''Semiology of Graphics'', 1983, University of Wisconsin Press (2nd edition 1973, {{ISBN|978-0299090609}};
*{{cite book |author=[[Donald E. Knuth]] |title=[[The Art of Computer Programming]] |series=Volume 1: Fundamental Algorithms |year=1968 |publisher=Addison-Wesley |pages=309–310}}
*Brian Johnson and [[Ben Shneiderman]], "[https://ieeexplore.ieee.org/document/175815 Tree-maps: A space-filling approach to the visualization of hierarchical information structures]", in ''Proceedings of IEEE Visualization (VIS)'', 1991, pp.&nbsp;284–291, {{ISBN|0-8186-2245-8}};
*[[Peter Eades]], Tao Lin, and Xuemin Lin, "Two Tree Drawing Conventions", ''International Journal of Computational Geometry and Applications'', 1993, volume 3, number 2, pp.&nbsp;133–153.
*{{cite book |author1=Manuel Lima |author1-link=Manuel Lima |title=The Book of Trees: Visualizing Branches of Knowledge|date=2014 |publisher=Princeton Architectural Press |___location=New York |isbn=978-1-616-89218-0 |edition=1st}}
 
== External links ==
{{Commons|Tree diagram}}
* [http://www.trex.uqam.ca Visualization of phylogenetic trees on the T-REX server]
* [http://www.stcwdc.org/PDF/newsletter_may05.pdf Using a tree structure to design a business process] – from the [[Society for Technical Communication]]
 
{{DEFAULTSORT:Tree Structure}}
[[Category:Trees (data structures)]]
[[Category:Conceptual models]]
 
[[de:Baum (Datenstruktur)]]
[[pl:Struktura drzewiasta]]