Rayme,

        This sounds like a Linked List system...

        I was not able to find quickly a linked list module, but
        searching by "trees" at the Vaults produced a R/B tree...

        http://newcenturycomputers.net/projects/rbtree.html

        I've been out of touch, I have not heard about the Red/Black
        balanced tree algorithm...

        Hmm...  But take a look and see if it meets your
        requirements...

        But take a look at your implementation, if your just
        trying to make a linked list, you could just use a
        standard python list....

                        - Benjamin

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Rayme Jernigan
> Sent: Wednesday, January 12, 2005 12:53 PM
> To: pythonmac-sig@python.org
> Subject: [Pythonmac-SIG] self-instantiating instances in pyhton
> 
> 
> Hi,
> 
> I'm looking for a language to abuse for a project I'm working on. I 
> know a little Python, but I do not know if it can do this: 
> I'd like to 
> define some class "N" that instantiates objects that can instantiate 
> fresh new objects of that same class... without external controller 
> code.
> 
> You could use this capability, for example, to generate a red-black 
> tree-type data structure that implicitly instantiates a new node for 
> each new input d1, d2, d3... so on. The algorithm for each node could 
> be:
> 
> -- Toggle downstream L/R pointer
> -- If no node there, instantiate one and link to it
> -- if a node is there, pass the datum to it
> 
> The execution sequence as the tree builds itself out might look 
> something like this:
> 
> 1. n0 = N(d0) # new instance of N
>                       # (downstream pointer default = "Left")
>                       # (the first input data, d0, is 
> instantiated in node n0)
>                       # nodes: n0
> 
> 2. n0.send(d1)        # toggle n0's downstream pointer to "Right"
>                       # on n0 there is no downstream node 
> right so instantiate a new 
> linked node right n1 with d1
>                       # nodes: n0,n1
> 
> 3. n0. send(d2) # toggle n0's downstream pointer "Left"
>                       # in n0 there is no downstream node 
> left so instantiate n2 with d2
>                       # nodes: n0,n1,n2
> 
> 4. n0. send(d3) # toggle n0's downstream pointer "Right"
>                       # there exists a downstream node right, 
> n1, so send d3 there
>                       # toggle n1's downstream pointer "Right"
>                       # in n1 there is no downstream node 
> right so instantiate n3 with d3
>                       # nodes: n0,n1,n2,n3
> 
> 5. n0. send(d4) # toggle n0's downstream pointer "Left"
>                       # there exists a downstream node left, 
> n2, so send d4 there
>                       # toggle n2's downstream pointer "Right"
>                       # in n2 there is no downstream node 
> right so instantiate n4 with d4
>                       # nodes: n0,n1,n2,n3,n4
> 
> 6. n0.send(d5)        # toggle n0's downstream pointer "Right"
>                       # there exists a downstream node right, 
> n1, so send d5 there
>                       # toggle n1's downstream pointer "Left"
>                       # in n1 there is no downstream node 
> left so instantiate n5 with d5
>                       # nodes: n0,n1,n2,n3,n4,n5
> 
> 7. n0.send(d6)        # So on...
>                       # ...
> 
> 
> Any thoughts about how to do this in Python appreciated. Possible at 
> all? Thanks in advance,
> 
> -Rayme.
> 
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org 
> http://mail.python.org/mailman/listinfo/pythonmac-sig
> 
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to