二叉樹的基本操作

2022-09-23 13:45:08 字數 1114 閱讀 7537

public class node

}public node root;

/*** @description 插入操作

* @param value

*/public void insert(int value) else

if (current.data > value)

}else if (current.data < value) }}

}}//第一種沒有簡潔性

public void find(int value)

else if(current.data > value)else

}else if(current.data < value)else}}

//簡潔

public node find(long value) else

//如果查詢不到

if(current == null)

}return current;

}節點沒有子節,直接將該節點賦null 節點有乙個子節點,將此子節點直接與父節點相連線 節點有左右節點,採用中繼後序的方法(將該節點的右節點上的最左邊的左子節點的值賦給該節點public boolean delete(long value) else

//如果查詢不到

if(current == null)

}//刪除葉子節點,也就是該節點沒有子節點

if(current.leftnode == null && current.rightnode == null) else if(isleftnode) else

} else if(current.rightnode == null) else if(isleftnode) else

} else else if(isleftnode) else

successor.leftnode = current.leftnode;

}return true;

}//用於尋找左子節點

public node getsuccessor(node delnode)

if(successor != delnode.rightnode)

return successor;

}

二叉樹基本操作

tree.h ifndef tree h define tree h include typedef int element 定義二叉樹 typedef struct nodetreenode void preorder treenode root 遞迴前序遍歷 void inorder treen...

二叉樹基本操作

一.二叉樹的定義 二.二叉樹的建立 定義一棵無資料的二叉樹 6 int left size 7 int right size 為了操作簡便,我們定義一棵不需要儲存資料的二叉樹,只要能儲存節點之間的邏輯關係就行,所以用兩個陣列來表示。left i 第i個節點的左子節點的序號 right i 第i個節點...

二叉樹基本操作

include include define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 j ch str j btnode f...