Automatic generation produced by ISE Eiffel

Classes Clusters Cluster hierarchy Chart Relations Text Flat Contracts Go to:
note description: "Trees where the children of each node are kept in an array" library: "Free implementation of ELKS library" legal: "See notice at end of class." status: "See notice at end of class." names: tree representation: recursive, array access: cursor, membership contents: generic date: "$Date: 2015-12-17 05:34:17 -0800 (Thu, 17 Dec 2015) $" revision: "$Revision: 98279 $" class interface ARRAYED_TREE [G] create make feature -- Initialization make (n: INTEGER_32; v: G) -- Create node with item `v'. -- Allocate space for `n' children. require valid_number_of_children: n >= 0 ensure node_item: item = v feature -- Access parent: detachable like Current -- Parent of current node left_sibling: like parent -- Left neighbor if any right_sibling: like parent -- Right neighbor if any feature -- Element change child_put (v: like item) -- Replace current child item with `v'. -- Was declared in ARRAYED_TREE as synonym of child_replace. child_replace (v: like item) -- Replace current child item with `v'. -- Was declared in ARRAYED_TREE as synonym of child_put. replace_child (n: like child) -- Make `n' the node's current child. ensure then child_replaced: n.parent = Current child_extend (v: like item) -- Add `v' at end. -- Do not move child cursor. child_put_left (v: like item) -- Add `v' to the left of cursor position. -- Do not move child cursor. child_put_right (v: like item) -- Add `v' to the right of cursor position. -- Do not move child cursor. put_child_left (n: like child) -- Add `n' to the left of cursor position. -- Do not move cursor. put_child_right (n: like child) -- Add `n' to the right of the cursor position. -- Do not move cursor. put_child (n: like child) -- Add `n' to the list of children. -- Do not move child cursor. merge_tree_before (other: like Current) -- Merge children of `other' into current structure -- before cursor position. Do not move cursor. -- Make `other' a leaf. merge_tree_after (other: like Current) -- Merge children of `other' into current structure -- after cursor position. Do not move cursor. -- Make `other' a leaf. feature -- Removal remove_child -- Remove child at cursor position. -- Move cursor to the next sibling, or `after' if none. remove_left_child -- Remove item to the left of cursor position. -- Do not move cursor. remove_right_child -- Remove item to the right of cursor position. -- Do not move cursor. forget_left -- Forget all left siblings. forget_right -- Forget all right siblings. feature -- Duplication duplicate (n: INTEGER_32): like Current -- Copy of sub-tree beginning at cursor position and -- having min (`n', arity - child_index + 1) -- children. feature -- Access child: attached like parent -- Current child node array_item (n: INTEGER_32): like Current last_child: like first_child -- Right most child first_child: like parent -- Leftmost child search_child (v: like Current) readable_child: BOOLEAN -- Is there a current child to be read? writable_child: BOOLEAN -- Is there a current child that may be modified? arity: INTEGER_32 -- Number of children child_start -- Move cursor to first child. child_finish -- Move cursor to last child. child_forth -- Move cursor to next child. child_back -- Move cursor to previous child. child_go_i_th (i: INTEGER_32) -- Move cursor to `i'-th child. child_index: INTEGER_32 -- Index of current child child_off: BOOLEAN -- Is there no current child? child_after: BOOLEAN -- Is there no valid child position to the right of cursor? child_before: BOOLEAN -- Is there no valid child position to the left of cursor? child_cursor: CURSOR -- Current cursor position child_go_to (p: CURSOR) -- Move cursor to position `p'. index_of (v: like Current; i: INTEGER_32): INTEGER_32 prune (n: like child) -- Remove `n' from the children. wipe_out -- Remove all children. child_move (i: INTEGER_32) do_all (an_agent: PROCEDURE [G]) -- Apply `an_agent' to every child nodes in the tree. note copyright: "Copyright (c) 1984-2012, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class ARRAYED_TREE
Classes Clusters Cluster hierarchy Chart Relations Text Flat Contracts Go to:

-- Generated by ISE Eiffel --
For more details: www.eiffel.com