Hello,

Say I want to implement a kind of linked list which node data may be anything. 
Thus I cannot store data on place (in nodes), indeed; so it should be 
referenced. But pointers themselves are supposed to be typed. So, how can I do 
that?

type list = ^node;
    node = record
        data : ???;
        next : list;
    end;

I tried to use Pointer, but then I get an error saying the compiler found <some 
type> while it expected "untyped". What is the use of Pointer (without type for 
pointed data)?
I also had a look at Variant; this looks like an ugly hack ;-) And avyway is 
not really generic. I need data to ba able to be anything, including first a 
linked list itself...
Finaly, when trying to write the the algo for a given type, I get an issue 
since the def above is recursive, recursively pointing in fact. So, I need to 
stop the run somewhere by allocating the memory for non-yet-existing data 
pointed by a pointer -- I guess.
    p^ := <I'll tell you soon, just book the place>
(The compiler warns about not initialised pointers.)

Pointers (sic!) to implementations of similar things (including trees) 
welcome...
More generally, I cannot find in the library units for common data structures 
(sequence, associative table, set (the collection)...).

Denis
________________________________

vit esse estrany ☣

spir.wikidot.com
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to