Solved

Trees on the brain

Posted on 1998-02-11
3
204 Views
Last Modified: 2010-04-16
I need to write a procedure to build a binary tree using arrays where the data item is string[10]. I also need a procedure to build a binary tree  using pointers where the data item is string[10]. Any suggestions / algorithms?
0
Comment
Question by:chadd082197
3 Comments
 
LVL 5

Expert Comment

by:inter
ID: 1217276
I do not understand the bintree with arrays but with pointers here is the idea:

type
  PNode = ^TNode;
  TNode = record
   data : string[10];
   L,R  : PNode; // left and right childs of node
  end;

var
  Root : TNode; //the root node for our tree

Now, please list what methods you want for this tree. e.g. adding item, removing item, balancing the tree etc...

Igor
0
 
LVL 2

Expert Comment

by:mitchell042997
ID: 1217277
You can use an array if you plan on having a balanced tree.  For example, if you want the tree:

....1
.../.\
..2...3
./\.../\
4.5..6..7

Then you can have an array like this:

1 | 2 | 3 | 4 | 5 | 6 | 7

To find any node's left child, multiply it by 2.  To find it's right child, multiply it by two and add 1.  If you have an unchanging, balaced array that you need to perform a lot of searches on, this way is quicker than using pointers.


0
 
LVL 1

Accepted Solution

by:
santhosh022698 earned 100 total points
ID: 1217278
binary tree using pointers :
type node = ^item ; item = record  data : string[10]; l,r : node; end;
the function for insertion is
function insert (root : node, toinsert : string):node ;
begin  if root=nil then begin root^.data := toinsert ; root^.l := nil; root^.r := nil; end
else if root^.data > toinsert then root^.left := insert(root^.left, toinsert)
else root^.right := insert (root^.right, toinsert);
insert := root ; end ;
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I'm trying, I really am. But I've seen so many wrong approaches involving date(time) boundaries I despair about my inability to explain it. I've seen quite a few recently that define a non-leap year as 364 days, or 366 days and the list goes on. …
Often, people trade privacy and security for convenience. However in today's concrete jungle, this is an extremely foolish decision considering the vast amount of technologies being used against consumer interest. First off, I won't waste any time e…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…
I designed this idea while studying technology in the classroom.  This is a semester long project.  Students are asked to take photographs on a specific topic which they find meaningful, it can be a place or situation such as travel or homelessness.…

943 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now