關於我自己

我的相片
Welcome to discuss about : Chinese Traditional Medicine and Acupuncture Please send me the email: tccnchsu@gmail.com Chih-Yu Hsu

最新消息

總網頁瀏覽量

2009年5月22日 星期五

第十三週

第十三週

fig. 19.17 tree.java
http://www.cis.temple.edu/~ingargio/cis67/software/deitel-jHTP4/ch19/


//=====================================================================
教學錄影
http://www.powercam.cc/slide/1615

//=====================================================================



class Mytreeone
{
TreeNode root;


Mytreeone()
{
//root=null;

}


void preorderTravel()
{
preorderHelper(root);
}
void preorderHelper(TreeNode node)
{
if(node==null)
return;
System.out.println(node.data);
preorderHelper(node.leftNode);
preorderHelper(node.rightNode);
}

void inoderTravel()
{
inoderHelper(root);
}
void inoderHelper(TreeNode node)
{
if(node==null)
return;
inoderHelper(node.leftNode);
System.out.println(node.data);
inoderHelper(node.rightNode);


}


void postorderTravel()
{
postorderHelper(root);
}
void postorderHelper(TreeNode node)
{
if(node==null)
return;
postorderHelper(node.leftNode);
postorderHelper(node.rightNode);
System.out.println(node.data);


}














void insertNode(int insertvalue)
{
if (root==null )
{

root=new TreeNode(insertvalue);
}
else
{

root.insert(insertvalue);

}


}
public static void main(String args[])
{
Mytreeone tree=new Mytreeone();

tree.insertNode(47);
tree.insertNode(25);
tree.insertNode(77);
tree.insertNode(11);
tree.insertNode(43);
tree.insertNode(65);
tree.insertNode(93);
tree.insertNode(7);
tree.insertNode(17);
tree.insertNode(31);
tree.insertNode(44);
tree.insertNode(68);

tree.preorderTravel();
System.out.println("==========");
tree.inoderTravel();
System.out.println("==========");
tree.postorderTravel();
}
}

2009年5月14日 星期四

fig



=================================
http://www.powercam.cc/slide/1561
=================================================================================
class Mytree{
TreeNode root;
Mytree()
{
root=null;
}
void insertNode(int insertValue )
{
if ( root == null )
root = new TreeNode( insertValue );

else
root.insert( insertValue );
}


void preorderTraversal()
{
preorderHelper( root);

}

void preorderHelper( TreeNode node )
{
if(node==null)
{
System.out.println("空的");
return;
}
else
{

System.out.println("不空的");
// output node data
System.out.println( node.data + " " );

// traverse left subtree
preorderHelper( node.leftNode );

// traverse right subtree
preorderHelper( node.rightNode );
}
}
public static void main(String args[]){
//TreeNode root = new TreeNode(47);
Mytree tree = new Mytree();
tree.insertNode(47);
tree.insertNode(25);
tree.insertNode(77);
tree.preorderTraversal();
}

}






==========================================================
// class TreeNode definition
class TreeNode {

// package access members
TreeNode leftNode;
int data;
TreeNode rightNode;

// initialize data and make this a leaf node
public TreeNode( int nodeData )
{
data = nodeData;
leftNode = rightNode = null; // node has no children
}

// insert TreeNode into Tree that contains nodes;
// ignore duplicate values
public synchronized void insert( int insertValue )
{
// insert in left subtree
if ( insertValue < data ) {

// insert new TreeNode
if ( leftNode == null )
leftNode = new TreeNode( insertValue );

// continue traversing left subtree
else
leftNode.insert( insertValue );
}

// insert in right subtree
else if ( insertValue > data ) {

// insert new TreeNode
if ( rightNode == null )
rightNode = new TreeNode( insertValue );

// continue traversing right subtree
else
rightNode.insert( insertValue );
}

} // end method insert

} // end class TreeNode
==========================================================

第十二週

第十二週

fig. 19.17 tree.java
http://www.cis.temple.edu/~ingargio/cis67/software/deitel-jHTP4/ch19/

http://www.google.com.tw/search?hl=zh-TW&q=fig.+19.17+tree.java&btnG=%E6%90%9C%E5%B0%8B&meta=&aq=f&oq=
http://www.cis.temple.edu/~ingargio/cis67/software/deitel-jHTP4/ch19/



http://users.cs.fiu.edu/~weiss/dsj3/code/

ArrayList members to binary tree nodes
http://forums.sun.com/thread.jspa?threadID=5373085

http://forums.sun.com/thread.jspa?threadID=5381791

2009年5月7日 星期四

第十一週

第十一週 二元排序樹
------------------------------------------------------------------------------
class BinarySortTree{
protected TreeNode root=null;

public void insert(int insertValue){


TreeNode newNode=new TreeNode();

newNode.info=insertValue;
newNode.llink=null;
newNode.rlink=null;
//System.out.print(newNode.info);

TreeNode current=new TreeNode();

if (root==null)
{
root=newNode;
}
else
{
current=root;
current.displayNode();
if (current.info>insertValue)
current.llink = newNode;
else
current.rlink = newNode;

}


TreeNode trailCurrent=new TreeNode();
if (trailCurrent.info>insertValue)
{

trailCurrent.llink = newNode;
trailCurrent.llink.displayNode();
}
else
trailCurrent.rlink = newNode;



}
public static void main(String[] args) {

BinarySortTree testNode=new BinarySortTree();
testNode.insert(17);
testNode.insert(6);
testNode.insert(23);
}


}

class TreeNode{
int info;
TreeNode llink;
TreeNode rlink;

public void displayNode() // display ourself
{
System.out.print("{");
System.out.print(info);
System.out.print("} ");
}

}

-------------------------------------------------------------------------------------

二元樹排序法是將鑑值依照輸入的順序建立二元樹,第一個鍵值為樹根,當輸入的值比樹根值大,則置入右子樹,
反之則置入左子樹,接著再利用中序走訪二元樹的節點一一走訪,即可得排序之鑑值.
其運作步驟如下:
1 第一筆資料鑑值視為樹根
2.其餘鍵值則個別與樹根比較,若比樹根值大,則置入右子樹,反之則置入左子樹.
3.當鍵值進入下一層子樹時,重複2步驟,直到無數值可用.
4.建好二元樹之後,利用中序走訪即可排序.



17,6, 23, 50, 40, 10, 15, 4, 20

17
6 23 (6<17 左, 23 >17 右)
10 50 (10<17, 左 , 10>6 右)
40
-------------------------------------------------------
17
6 23
10 50
15 40 (15<17 左, 15>6, 右, 15>10 右)

--------------------------------------------------------
17
6 23
4 10 20 50
15 40
--------------------------------------------------------------
二元樹以建立完成

--------------------------------------------------------------
在利用中序走訪

4, 6 , 10, 15, 17, 20, 23, 40, 50
排序完成,此為二元樹排序法(Brinary Tree Sorting)
ex
20,10, 50, 30, 40, 60, 15, 8, 12
http://users.cs.fiu.edu/~weiss/dsj3/code/

--------------------------------------------------------------


javax.swing.tree

Interface TreeNode

--------------------------------------------------------------

class Node
{
public int iData; // data item (key)
public double dData; // data item
public Node leftChild; // this node's left child
public Node rightChild; // this node's right child

public void displayNode() // display ourself
{
System.out.print('{');
System.out.print(iData);
System.out.print(", ");
System.out.print(dData);
System.out.print("} ");
}
} // end class Node

---------------------------------------------------------------
class TreeNode{
int info;
TreeNode llink;
TreeNode rlink;
}