Solved

Trees on the brain

Posted on 1998-02-11
3
224 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

Enroll in May's Course of the Month

May’s Course of the Month is now available! Experts Exchange’s Premium Members and Team Accounts have access to a complimentary course each month as part of their membership—an extra way to increase training and boost professional development.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Unsigned int64 to unsigned int32 10 1,752
Get pixel color of a jpg in a TImage 1 2,788
delphi custom sort exception 6 181
find a node in VST 2 92
Check out this step-by-step guide for asking an anonymous question on Experts Exchange.
By reading this blog, MSPs will gain insight into how to improve communications with their clients as well as establish a more profitable business.
This video shows how to use Hyena, from SystemTools Software, to update 100 user accounts from an external text file. View in 1080p for best video quality.
Suggested Courses

732 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