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

⟦3806e7c64⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Generic_List_Sorter, seg_0046a9

Derivation

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

E3 Source Code



procedure Generic_List_Sorter (List : in out Element_List) is

    type Node;
    type Tree is access Node;

    type Node is
        record  
            Info        : Element;
            Left, Right : Tree;
        end record;

    Root : Tree;

    procedure Place (Item : Element; Where : in out Tree) is
    begin
        if Where = null then
            Where := new Node'(Info => Item, Left | Right => null);
        elsif Where.Info <= Item then
            Place (Item, Where.Right);
        else
            Place (Item, Where.Left);
        end if;
    end Place;

    procedure Traverse (T : Tree) is
    begin
        if T = null then
            return;
        else
            Traverse (T.Left);
            Append (T.Info, List);
            Traverse (T.Right);
        end if;
    end Traverse;

begin  
    Reset (List);
    while not Done (List) loop
        Place (Value (List), Root);
        Next (List);
    end loop;  
    List := Nil_List;
    Traverse (Root);
end Generic_List_Sorter;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=2a rec1=00 rec2=01 rec3=00a
        [0x01] rec0=04 rec1=00 rec2=02 rec3=000
    tail 0x2150048b2815c66c5f95c 0x42a00088462061e03