!standard A.18.10(2/3) 13-06-14 AI12-0078-1/01 !standard A.18.10(3/3) !class binding interpretation 13-06-14 !status Amendment 202x 13-06-28 !status WG9 Approved 13-11-15 !status ARG Approved 9-0-0 13-06-15 !status work item 13-06-14 !status received 13-06-14 !priority Low !difficulty Easy !qualifier Omission !subject Definition of node for tree container is confusing !summary The root node of a tree does not have an element. !question The introduction to the Tree container the definition of "node" is quite confusing, as it starts by saying that each node contains an element, but in fact the root node does not. Should this be clarified? (Yes.) !recommendation (See !summary.) !wording Modify A.18.10(2/3): A multiway tree container object manages a tree of [internal] *nodes*, {comprising of a *root node*, and a set of *internal nodes*} each of which contains an element and pointers to the parent, first child, last child, next (successor) sibling, and previous (predecessor) sibling internal nodes. A cursor designates a particular node within a tree (and by extension the element contained in that node, if any). A cursor keeps designating the same node (and element) as long as the node is part of the container, even if the node is moved within the container. Modify A.18.10(3/3): A *subtree* is a particular node (which *roots the subtree*) and all of its child nodes (including all of the children of the child nodes, recursively). [There is a special node, the *root*, which] {The root node} is always present and has neither an associated element value nor any parent node{; it has pointers to its first child and its last child, if any}. The root node provides a place to add nodes to an otherwise empty tree and represents the base of the tree. !discussion !corrigendum A.18.10(2/3) @drepl A multiway tree container object manages a tree of internal @i, each of which contains an element and pointers to the parent, first child, last child, next (successor) sibling, and previous (predecessor) sibling internal nodes. A cursor designates a particular node within a tree (and by extension the element contained in that node, if any). A cursor keeps designating the same node (and element) as long as the node is part of the container, even if the node is moved within the container. @dby A multiway tree container object manages a tree of @i, comprising of a @i, and a set of @i each of which contains an element and pointers to the parent, first child, last child, next (successor) sibling, and previous (predecessor) sibling internal nodes. A cursor designates a particular node within a tree (and by extension the element contained in that node, if any). A cursor keeps designating the same node (and element) as long as the node is part of the container, even if the node is moved within the container. !corrigendum A.18.10(3/3) @drepl A @i is a particular node (which @i) and all of its child nodes (including all of the children of the child nodes, recursively). There is a special node, the @i, which is always present and has neither an associated element value nor any parent node. The root node provides a place to add nodes to an otherwise empty tree and represents the base of the tree. @dby A @i is a particular node (which @i) and all of its child nodes (including all of the children of the child nodes, recursively). The root node is always present and has neither an associated element value nor any parent node; it has pointers to its first child and its last child, if any. The root node provides a place to add nodes to an otherwise empty tree and represents the base of the tree. !ACATS Test No ACATS test is needed, as this is just a definitional change (no semantic change is intended). !ASIS No ASIS effect. !appendix From: Tucker Taft Sent: Friday, June 14, 2013 11:33 AM !problem The introduction to the Tree container the definition of "node" is quite confusing, as it starts by saying that each node contains an element, but in fact the root node does not. !wording Modify paragraphs A.18.10(2,3): 2/3 A multiway tree container object manages a tree of {*nodes*, comprising a *root* *node*, and a set of *internal*} [internal] *nodes* each of which contains an element and pointers to the parent, first child, last child, next (successor) sibling, and previous (predecessor) sibling internal nodes. A cursor designates a particular node within a tree (and by extension the element contained in that node, if any). A cursor keeps designating the same node (and element) as long as the node is part of the container, even if the node is moved within the container. 3/3 A subtree is a particular node (which roots the subtree) and all of its child nodes (including all of the children of the child nodes, recursively). [There is a special node, the root, which] {The root node is always present and has neither an associated element value nor any parent node{; it has pointers to its first child and its last child, if any}. The root node provides a place to add nodes to an otherwise empty tree and represents the base of the tree. **************************************************************** From: Jeff Cousins Sent: Friday, June 14, 2013 3:10 PM Thanks Tuck. The first paragraph looks fine to me but the second is missing a } after "root node" and presumably the italics should be kept. ****************************************************************