DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦3ab49eef5⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Nos_Arbres, seg_044c2f, seg_044c3d, seg_044fe0, seg_04528f

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Binary_Trees;

generic

    type Element is private;

    with function Difference (P, Q : Element) return Integer is <>;
    --/ Must return a value > 0 if P > Q, 0 if P = Q
    --/ And less than zero otherwise;

package Nos_Arbres is

    package Trees is new Binary_Trees (Element, Difference);

    subtype Object is Trees.Tree;
    subtype Iterator is Trees.Iterator;

    function Create_Tree return Object;
    function Is_Empty (A_Tree : Object) return Boolean;
    function Find (An_Element : Element; A_Tree : Object) return Boolean;  
    procedure Find (An_Element : in out Element;
                    A_Tree : Object;
                    Found : out Boolean);
    function Search (An_Element : Element; A_Tree : Object) return Element;
    procedure Add (An_Element : Element; A_Tree : Object);
    procedure Replace    -- Replace a value if old_element exists, otherwise insert it;
                 (New_Element : Element; A_Tree : Object);

    procedure Extract (A_Tree : in out Object; An_Element : out Element);

    generic

        with procedure Free_Element (An_Element : in out Element) is <>;

    procedure Destroy_Tree (A_Tree : in out Object);

    function Create_Iterator (A_Tree : in Object) return Iterator;
    --/ the function create_iterator returns an iterator for the specified tree.

    procedure First_Iteration (An_Iterator : in out Iterator;
                               An_Element : out Element);
    --/ The procedure first_iteration returns the first value thanks to the iterator
    --/ which was created by the function create_iterator;

    procedure First_Iteration (A_Tree : in Object;
                               An_Iterator : in out Iterator;
                               An_Element : out Element);
    --/ the procedure First_Iteration CREATES an iterator of the tree and return the first value in the tree.

    procedure Iterate (An_Iterator : in out Iterator; An_Element : out Element);
    --/ this procedure Iterate  returns a value thanks to the iterator which was create before;
    --/ after, the iterator goes to next value;
    --/ BE CAREFUL : The first time "iterate" is called, the procedure returns the FIRST value ( = ROOT Value);

    function End_Iteration (An_Iterator : Iterator) return Boolean;
    --/ this function detects if the iteration is finished.

end Nos_Arbres;



E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=1c rec1=00 rec2=01 rec3=074
        [0x01] rec0=17 rec1=00 rec2=02 rec3=078
        [0x02] rec0=0b rec1=00 rec2=03 rec3=000
    tail 0x21540d882864351a7d6a8 0x42a00088462060003