From: | "Jackson, DeJuan" <djackson(at)cpsgroup(dot)com> |
---|---|
To: | Neil Burrows <neil(at)remo(dot)demon(dot)co(dot)uk> |
Cc: | PGSQL SQL <pgsql-sql(at)postgresql(dot)org> |
Subject: | RE: [SQL] A path through a tree |
Date: | 1999-01-14 16:18:48 |
Message-ID: | F10BB1FAF801D111829B0060971D839F5DE763@cpsmail |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> > If you want to use this for a message board I'd suggest inserting a
> > dummy head that gets excluded from display in your app. instead of
> > trying to have multiple heads.
> >
> > Let me know if you figure out an easy way to display
> treading, haven't
> > tried it myself.
>
> Eek! Caught! :)
>
> Thanks again,
>
> Regards,
>
> Neil Burrows
Well, last night I thought it over and a Good(tm) way to display
threading, hit me. If you don't ever delete a node, but just it's data
you can use the l and r information recursively to display.
function display(nodeList[][], currentNode, depth) {
printf("%s|_%s\n", spaces(depth*2), nodeList[currentNode]['title']);
numChildren = (nodeList[currentNode]['r'] -
nodeList[currentNode]['l'] - 1)/2;
for(numNodes=0;numNodes < numChildren;
numNodes += display(nodeList, currentNode+numNodes+1, depth+1)) ;
numNodes++;
return numNodes;
}
I hope my psudo-code is decipherable.
Looking at the tree from the previous message:
l| r|data
--+--+----
1|12|head
2| 7|c1
3| 4|c11
5| 6|c12
8| 9|c2
10|11|c3
(6 rows)
And using the information in the above function we get:
|_head
|_c1
|_c11
|_c12
|_c2
|_c3
Collapsing and expanding branches could simply be an array of booleans
that's checked at currentNode where true display current node with a
plus (link for html to expand) then return numChildren+1 otherwise do
the loop.
Just thought everybody might like to see this.
-DEJ
BTW if you want more examples of this data-layout of trees I can send in
the URL's where I found it.
From | Date | Subject | |
---|---|---|---|
Next Message | Morris, Sam@EDD | 1999-01-14 19:04:16 | many to many relationship Query ? |
Previous Message | Frank Barknecht | 1999-01-14 15:28:48 | Re: [SQL] Text type |