Solved

TreeNode *urgent*

Posted on 2004-04-12
31
295 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
 
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
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

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

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Suggested Solutions

For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…

707 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

18 Experts available now in Live!

Get 1:1 Help Now