[fpc-pascal] How To write an enumerator for trees

Mattias Gaertner nc-gaertnma at netcologne.de
Thu Mar 21 08:39:35 CET 2013


On Thu, 21 Mar 2013 11:11:49 +0800
Xiangrong Fang <xrfang at gmail.com> wrote:

> Hi,
> 
> I would like to add enumerator support for my TTreap implementation (
> https://github.com/xrfang/fpcollection/blob/master/src/units/treap.pas).
> 
> The tree nodes are defined as:
> 
>       PNode = ^TNode;
>       TNode = record
>         Count: Cardinal;
>         Key: TKey;
>         Value: TValue;
>         Priority: Cardinal;
>         Left, Right: PNode;
>       end;
> 
> Now I don't know how to write an enumerator for it.  I would like to
> traverse the tree "In-Order", either from the left-most node or from the
> right-most node, so that I can output nodes like:
> 
>       for n in MyTreap do WriteLn(n^.Key);

See here:

http://wiki.freepascal.org/for-in_loop#Declaring_enumerators

Mattias



More information about the fpc-pascal mailing list