樹是一種類似於鍊錶的資料結構,但樹是一種典型的非線性結構,乙個結點可以指向多個節點。
二叉樹是指樹的每乙個結點有0,1,2個孩子節點。
嚴格二叉樹:每個結點要麼有兩個孩子結點,要麼沒有孩子結點。
滿二叉樹:每個結點正好有兩個孩子結點且所有葉子結點都在同一層。
public
class binarytreenode
public
binarytreenode()
public
binarytreenode(int data)
public
intgetdata()
public
void
setdata(int data)
public binarytreenode getleftnode()
public
void
setleftnode(binarytreenode leftnode)
public binarytreenode getrightnode()
public
void
setrightnode(binarytreenode rightnode)
}
/**
* 遞迴方式 前序遍歷
*@param rootnode 根節點
*/private
void
preorder(binarytreenode rootnode)
}
/**
* 遞迴方式 中序遍歷
* @param rootnode 根節點
*/private void inorder(binarytreenode rootnode)
}
/**
* 遞迴方式 後序遍歷
*@param rootnode 根節點
*/private
void
postorder(binarytreenode rootnode)
}
/**
* 初始化二叉樹
*@param firstnode 根節點
* 層次遍歷
*@param firstnode
*/private
void
levelorder(binarytreenode firstnode)
queue.add(firstnode);
while(!queue.isempty())
if (temp.getrightnode() != null)
}queue.clear();
}
層次遍歷結果: 1 2 3 4 5 6 7
private
int maxnum = 0;;
private
void
findmax(binarytreenode rootnode)
findmax(rootnode.getleftnode());
findmax(rootnode.getrightnode());}}
c語言實現二叉樹資料結構
要實現任意一種資料結構,首先要考慮組成該資料結構的基本元素。二叉樹的基本組成元素是結點 又根據二叉樹的性質,每個結點都可以看成由資料項 指向左子樹的指標和指向右子樹的指標組成。二叉樹的操作要充分考慮遞迴的運用。include include 二叉樹的資料結構 typedef struct bnode...
java資料結構 二叉樹
二叉樹是有限個數的集合,該集合或者為空,或者有乙個稱為根元素以及兩個不相交的,被分別稱為根的左子樹和右子樹的二叉樹組成。相關概念 深度 樹中結點的最大層數稱為樹的深度。結點的度 結點所擁有的子樹的個數稱為該結點的度。葉節點 度 0的節點。滿二叉樹 乙個二叉樹的每一層結點個數都達到了最大,即為滿二叉樹...
java資料結構 二叉樹
樹是一種特殊的資料結構,他可以用來描述有分支的結構是由乙個或者乙個以上的有限集合組成,具有兩個屬性 一是存在乙個特殊的節點,成為樹根 二是其餘節點分為n 0個互斥集合,t1,t2,t3,tn,每個集合成為子樹。常用屬性如下 1 根節點 根節點是乙個沒有雙親結點的結點,一棵樹中最多有乙個根節點。2 結...