package eureka.server.tree;
public class binarysearchtreeimplements tree
public void setroot(binarynoderoot)
@override
public string tostring() ';
}@override
public void insert(t data)
root = insertnode(data,root);
}/**
* 插入節點
* @param data
* @param p
* @return
*/private binarynodeinsertnode(t data, binarynodep)else if(result > 0)else
return p;
}/**
* 查詢最小值節點
* @param binarynode
* @return
*/private binarynodefindmin(binarynode binarynode)
return findmin(binarynode.getleftnode());
}/**
* 查詢最小值節點
* @param binarynode
* @return
*/private binarynodefindmax(binarynode binarynode)
return findmax(binarynode.getrightnode());
}/**
* 刪除節點
* @param data
* @param p
* @return
*/private binarynoderemove(t data, binarynodep)
//查詢要刪的值
int result = data.compareto(p.getdata());
//小於0,從左邊開始查詢
if(result < 0)else if(result > 0)else if(p.getrightnode() != null && p.getrightnode() != null)else
return p;
}/**
* 求樹的深度
* @return
*/public int hight()
/*** 遞迴求樹的深度
* @param node
* @return
*/public int hight(binarynodenode)else
}/**
* 求二叉平衡樹的size
** @return
*/public int size()
/*** 求二叉平衡樹的size
* 遞迴,每一層的大小等於節點的左子樹的大小加上右子樹的大小加1
** @return
*/public int size(binarynodep)else
}/**
* 先根遍歷,先遍歷根節點,再遍歷左節點,右節點
* @return
*/public string preorder()
return s;
}/**
* 先根遍歷
* @param p
* @return
*/public string preorder(binarynodep)
return sb.tostring();
}/**
* 中根遍歷,先遍歷左節點,根節點,右節點
* @return
*/private string inorder()
return s;
}/**
* 中根遍歷
* @return
*/private string inorder(binarynodep)
return sb.tostring();
}/**
* 後根遍歷,先遍歷左子樹,右子樹,根節點
* @return
*/public string postorder()
return s;
}/**
* 後根遍歷
* @param p
* @return
*/public string postorder(binarynodep)
return sb.tostring();
}public static void main(string args)
}
二叉排序樹(二叉查詢樹)的基本操作
二叉排序樹的查詢屬於動態查詢的範疇,根據查詢過程中是否對錶進行修改,可以把查詢分為靜態查詢和動態查詢。動態查詢表的特點是 表結構本身是在查詢過程中動態生成的,即對於給定的key值,若表中存在其關鍵字等於key的記錄,則查詢成功並返回,否則插入關鍵字等於key的記錄。二叉排序樹或者是一顆空樹,或者是具...
二叉查詢樹的基本操作
二叉查詢樹 對於樹中的每個節點x,它的左子樹所有關鍵字小於x的關鍵字,而右子樹的所有關鍵字大於x的關鍵字。二叉查詢樹的平均深度是o logn 二叉查詢樹的刪除操作 如果有乙個兒子,調節父節點指標繞過該節點後被刪除。如果有兩個兒子,用右子樹的最小資料代替該節點的資料,並遞迴地刪除那個節點 現在它是空的...
二叉樹 二叉查詢樹
構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...