Solved

TreeNode *urgent*

Posted on 2004-04-12
31
297 Views
Last Modified: 2010-03-31
Can someone gimme the TreeNode codes cuz I need to build a tree. I need the class that has method such as isLeaf, insertChild or watever etc....pls~ Thanks~

0
Comment
Question by:jtcy
  • 12
  • 9
  • 7
  • +1
31 Comments
 
LVL 92

Assisted Solution

by:objects
objects earned 300 total points
ID: 10810717
why not just use javax.swing.tree.DefaultMutableTreeNode
0
 

Author Comment

by:jtcy
ID: 10810750
i thought that is just an interface without any implementation?
0
 
LVL 9

Assisted Solution

by:mmuruganandam
mmuruganandam earned 150 total points
ID: 10810771
The following links would help you in building a tree with the TreeNode.


http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
http://javaalmanac.com/egs/javax.swing.tree/AddNode.html?l=rel


Regards,
Muruga
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
LVL 92

Assisted Solution

by:objects
objects earned 300 total points
ID: 10810775
TreeNode is just an interface.
DefaultMutableTreeNode is an implementation of that interface:

0
 

Author Comment

by:jtcy
ID: 10810909
I need to implement my own.
0
 
LVL 9

Assisted Solution

by:mmuruganandam
mmuruganandam earned 150 total points
ID: 10810937
Why you want to re-invent the wheel.  May be you can extend the DefaultMutableTreeNode and add your own functions to it.
0
 

Author Comment

by:jtcy
ID: 10810968
I have my class extends DefaultMutableTreeNode and above I have it import java.lang.*; it says cant resolve the class~
0
 
LVL 92

Assisted Solution

by:objects
objects earned 300 total points
ID: 10810969
You could just grab the source code for DefaultMutableTreeNode as a starting point.

What interface do you need to implement exactly?
0
 

Author Comment

by:jtcy
ID: 10811019
actually i just need methos like addChild, isLeaf, getChildAt, etc. Whether or not it's my own is not matter but if i could implement TreeNode myself with just few of these methods would be a better choice.
0
 
LVL 92

Expert Comment

by:objects
ID: 10811036
>  but if i could implement TreeNode myself with just few of these methods would be a better choice.

Why exactly, surely using an already existing class would be preferable?
0
 

Author Comment

by:jtcy
ID: 10811040
i donno if i am allowed to use them....anyway, i am trying to use them. Um...which package does DefaultMutablewatever class from? I try importing java.lang.*; still cant find it
0
 
LVL 9

Expert Comment

by:mmuruganandam
ID: 10811044
addChild, isLeaf, getChildAt and many more methods are already available in DefaultMutableTreeNode.



0
 
LVL 9

Expert Comment

by:mmuruganandam
ID: 10811052
It is found at

javax.swing.tree.DefaultMutableTreeNode

the package that you are suppose to import is

import javax.swing.tree.DefaultMutableTreeNode;

0
 
LVL 92

Assisted Solution

by:objects
objects earned 300 total points
ID: 10811060
This should get you started:


public class TreeNode
{
   private ArrayList children = new ArrayList();

   public void addChild(TreeNode child)
   {
      children.add(child);
   }

   public int getChildCOunt()
   {
      return children.size();
   }

   public TreeNode getChildAt(int index)
   {
      return (TreeNode) children.get(index);
   }

   public boolean isLeaf()
   {
      return children.size()==0;
   }
}
0
 
LVL 92

Expert Comment

by:objects
ID: 10811065
> which package does DefaultMutablewatever class from?

see my original comment:
javax.swing.tree.DefaultMutableTreeNode
0
 

Author Comment

by:jtcy
ID: 10811084
objects, which class should ur treeNode extend?
0
 

Author Comment

by:jtcy
ID: 10811113
does arrayList works like vector where we don need to keep its element offset? and its size gets incremented automatically?
0
 
LVL 9

Assisted Solution

by:mmuruganandam
mmuruganandam earned 150 total points
ID: 10811128
Yes.

ArrayList is non-synchronized.  Vector is synchronized.

That is the major difference.  Otherwise, both are same.
0
 
LVL 92

Assisted Solution

by:objects
objects earned 300 total points
ID: 10811131
> which class should ur treeNode extend?

doesn't need to extend anything. really depends on how you are using it.

> does arrayList works like vector where we don need to keep its element offset? and its size gets
> incremented automatically?

yes


0
 

Author Comment

by:jtcy
ID: 10811224
how do i do square root in java?
0
 
LVL 9

Expert Comment

by:mmuruganandam
ID: 10811238
Math.sqrt(<double>);
0
 

Author Comment

by:jtcy
ID: 10811246
if a variable is int, says int distance, can i do :
distance = Math.sqrt((double) distance); ??
0
 
LVL 9

Expert Comment

by:mmuruganandam
ID: 10811266
yes you can

distance = (int)Math.sqrt((double) distance);
0
 

Author Comment

by:jtcy
ID: 10811319
Okay, got a big trouble. For a given root node, i need to traverse it down and for every children of it, if it is a leaf node, then call a function called "evaluate(thisNode)", else just keep on traversing till its end. How can I do that?
0
 
LVL 9

Expert Comment

by:mmuruganandam
ID: 10811329
Here is the example, using which you can traverse the whole tree....


http://javaalmanac.com/egs/javax.swing.tree/GetNodes.html?l=rel

0
 
LVL 37

Accepted Solution

by:
zzynx earned 50 total points
ID: 10811933
public void evaluateAllNodes(TreeNode node) {

        if (node.isLeaf())
            evaluate(node);
   
        if (node.getChildCount() >= 0) {
            for (Enumeration e=node.children(); e.hasMoreElements(); ) {
                TreeNode n = (TreeNode)e.nextElement();
                evaluateAllNodes(n);
            }
        }
}

You call this function on your root:

    evaluateAllNode(myRoot);

0
 

Author Comment

by:jtcy
ID: 10822327
objects, could u write getParents for me please?~ i am stuck of it.
0
 
LVL 37

Expert Comment

by:zzynx
ID: 10822340
no longer interested in our input?
OK.
0
 
LVL 9

Expert Comment

by:mmuruganandam
ID: 10822344
getParent could be a TreeNode.

public TreeNode getParent(TreeNode node)
{
    return  node.getParent();
}
0
 

Author Comment

by:jtcy
ID: 10823142
will this work? an infinite recursion?
0
 
LVL 37

Expert Comment

by:zzynx
ID: 10949808
jtcy, are you doing a "spring clean up" of all your open Q's?
Nevertheless, thanks for awarding our efforts.
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Java Jpanels and Jframe 8 32
GUI builder for Eclipse? 8 35
stackato and cloud 4 85
Error trying to install RTMT Win7 5 59
INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The viewer will learn how to implement Singleton Design Pattern in Java.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

808 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