二叉樹的基本操作

2021-10-23 10:10:08 字數 1177 閱讀 4803

以下是關於二叉樹的基本操作(遞迴實現)

1、求二叉樹的總節點個數

2、求葉子節點個數

3、求第k層節點個數

4、求二叉樹的高度

5、查詢給定val所在的節點

//求樹的節點個數

public static int sumnode(node root)

return 1 + sumnode(root.left) + sumnode(root.right);

}//求葉子節點個數

//葉子節點:左子樹和右子樹都為空

public static int leafnode(node root)

if(root.left==null&&root.right==null)

return leafnode(root.left)+leafnode(root.right);

}//求第k層的節點個數

//第k層=第k-1層左子樹節點個數+第k-1層右子樹節點個數

public static int knode(node root,int k)

if(k==1)

return knode(root.left,k-1)+knode(root.right,k-1);

}//求二叉樹的高度

//從根節點到葉子節點最長的路徑即為二叉樹的高度/最大深度

public static int maxdepth(node root)

if(root.left==null&&root.right==null)

int leftdepth=maxdepth(root.left);

int rightdepth=maxdepth(root.right);

return 1+(leftdepth>rightdepth?leftdepth:rightdepth);

}//查詢val所在節點

public static node find(node root,char tofind)

if(root.val==tofind)

//先查詢左子樹

node result=find(root.left,tofind);

if(result!=null)

//再查詢右子樹

return find(root.right,tofind);

}

二叉樹基本操作

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...