非線性結構主要包括樹和圖。其中樹主要的是二叉樹。
二叉樹:每個結點至多隻有兩個子結點的樹稱爲二叉樹。
二叉樹的遍歷:先序DLR、中序LDR、後序LRD、按層遍歷
①遞歸
/**
* 中序遍歷二叉樹
* @param node 結點
*/
static void preOrder(Node node){
if(node!=null){
preOrder(node.left);
System.out.print(node.name);
preOrder(node.right);
}
}
②非遞歸算法
中序遍歷二叉樹:藉助於棧 push or pop
按層遍歷:藉助於隊列
二叉樹的應用
①二叉排序樹
②平衡二叉樹
③哈弗曼樹和哈弗曼編碼
平衡二叉樹的構建:LL型、LR型、RR型、RL型
圖的存儲方式:
①鄰接矩陣法
②鄰接表法
③十字鏈表(有向圖)
④鄰接多重表法(無向圖)
圖的遍歷:深度優先搜索、廣度優先搜索
圖的應用
①最短路徑
②最小生成樹