Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

tree::node(3pm) [debian man page]

Node(3pm)						User Contributed Perl Documentation						 Node(3pm)

NAME
Tree::RedBlack::Node - Node class for Perl implementation of Red/Black tree SYNOPSIS
use Tree::RedBlack; my $t = new Tree::RedBlack; $t->insert(3, 'dog'); my $node = $t->node(3); $animal = $node->val; DESCRIPTION
A Tree::RedBlack::Node object supports the following methods: key () Key of the node. This is what the nodes are sorted by in the tree. val ($) Value of the node. Can be any perl scalar, so it could be a hash-ref, f'rinstance. This can be set directly. color () Color of the node. 1 for "red", 0 or undef for "black". parent () Parent node of this one. Returns undef for root node. left () Left child node of this one. Returns undef for leaf nodes. right () Right child node of this one. Returns undef for leaf nodes. min () Returns the node with the minimal key starting from this node. max () Returns the node with the maximal key starting from this node. successor () Returns the node with the smallest key larger than this node's key, or this node if it is the node with the maximal key. predecessor () Similar to successor. WARNING: NOT YET IMPLEMENTED!! You can use these methods to write utility routines for actions on red/black trees. For instance, here's a routine which writes a tree out to disk, putting the byte offsets of the left and right child records in the record for each node. sub dump { my($node, $fh) = @_; my($left, $right); my $pos = tell $fh; print $fh $node->color ? 'R' : 'B'; seek($fh, 8, 1); print $fh $node->val; if ($node->left) { $left = dump($node->left,$fh); } if ($node->right) { $right = dump($node->right,$fh); } my $end = tell $fh; seek($fh, $pos+1, 0); print $fh pack('NN', $left, $right); seek($fh, $end, 0); $pos; } You would call it like this: my $t = new Tree::RedBlack; ... open(FILE, ">tree.dump"); dump($t->root,*FILE); close FILE; As another example, here's a simple routine to print a human-readable dump of the tree: sub pretty_print { my($node, $fh, $lvl) = @_; if ($node->right) { pretty_print($node->right, $fh, $lvl+1); } print $fh ' 'x($lvl*3),'[', $node->color ? 'R' : 'B', ']', $node->key, " "; if ($node->left) { pretty_print($this->left, $fh, $lvl+1); } } A cleaner way of doing this kind of thing is probably to allow sub-classing of Tree::RedBlack::Node, and then allow the Tree::RedBlack constructor to take an argument saying what class of node it should be made up out of. Hmmm... AUTHOR
Benjamin Holzman <bholzman@earthlink.net> SEE ALSO
Tree::RedBlack perl v5.10.0 2008-07-31 Node(3pm)

Check Out this Related Man Page

XPath::Node::Element(3pm)				User Contributed Perl Documentation				 XPath::Node::Element(3pm)

NAME
Element - an <element> API
new ( name, prefix ) Create a new Element node with name "name" and prefix "prefix". The name be "prefix:local" if prefix is defined. I know that sounds weird, but it works ;-) getName Returns the name (including "prefix:" if defined) of this element. getLocalName Returns just the local part of the name (the bit after "prefix:"). getChildNodes Returns the children of this element. In list context returns a list. In scalar context returns an array ref. getChildNode ( pos ) Returns the child at position pos. appendChild ( childnode ) Appends the child node to the list of current child nodes. getAttribute ( name ) Returns the attribute node with key name. getAttributes / getAttributeNodes Returns the attribute nodes. In list context returns a list. In scalar context returns an array ref. appendAttribute ( attrib_node) Appends the attribute node to the list of attributes (XML::XPath stores attributes in order). getNamespace ( prefix ) Returns the namespace node by the given prefix getNamespaces / getNamespaceNodes Returns the namespace nodes. In list context returns a list. In scalar context returns an array ref. appendNamespace ( ns_node ) Appends the namespace node to the list of namespaces. getPrefix Returns the prefix of this element getExpandedName Returns the expanded name of this element (not yet implemented right). string_value For elements, the string_value is the concatenation of all string_values of all text-descendants of the element node in document order. toString ( [ norecurse ] ) Output (and all children) the node to a string. Doesn't process children if the norecurse option is a true value. perl v5.10.1 2009-12-30 XPath::Node::Element(3pm)
Man Page