樹的應用 樹的葉子結點數 樹的深度 樹的拷貝

2021-08-20 12:35:53 字數 1573 閱讀 4711

// 樹的遍歷.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include//二叉鏈表示法

typedef struct bitnode

;typedef struct bitnode* bitree;

//先序遍歷

void preoder(bitnode *root)

printf("%d ",root->data);

//遍歷左子樹

preoder(root->lchild);

//遍歷右子樹

preoder(root->rchild);

}//中序遍歷

void inorder(bitnode *root)

//遍歷左子樹

inorder(root->lchild);

printf("%d ", root->data);

//遍歷右子樹

inorder(root->rchild);

}//後序遍歷

void postorder(bitnode *root)

//遍歷左子樹

postorder(root->lchild);

//遍歷右子樹

postorder(root->rchild);

printf("%d ", root->data);

}//計算二叉樹中葉子結點的數目

int num = 0;

void leafcount(bitnode *root)

leafcount(root->lchild);

leafcount(root->rchild);

} //return 0;

//printf("%d\n ", num);

}//計算二叉樹的深度

int depthtree(bitnode *root)

//求左子樹高度

leftdepth = depthtree(root->lchild);

//求右子樹高度

rightdepth = depthtree(root->rchild);

//+1

depth = 1+(leftdepth > rightdepth ? leftdepth : rightdepth);

return depth;

}//copy二叉樹

bitnode* copytree(bitnode* root)

if (root->lchild!=null)

else

if (root->rchild != null)

else

newnode = (bitnode*)malloc(sizeof(bitnode));

if (newnode == null)

newnode->lchild = newleftnode;

newnode->rchild = newrightnode;

newnode->data = root->data;

return newnode;

}int main()

求二叉樹的深度 寬度和葉子結點數

如果用鍊錶來儲存二叉樹,那麼可以將二叉樹定義如下 typedef char elemtype typedef struct nodebtnode 問題一 二叉樹的深度 二叉樹的深度,也叫二叉樹的高度,二叉樹的深度等於從根結點到葉子結點的最長路徑加1。用遞迴的觀點來看,二叉樹的深度,等於其最大左右子樹...

葉子結點和分支節點 樹的度和結點數的關係

一 概念 與圖論中的 度 不同,樹的度是如下定義的 有根樹t中,結點x的子女數目稱為x的度。也就是 在樹中,結點有幾個分叉,度就是幾。乙個有用的小公式 樹中結點數 總分叉數 1。這裡的分叉數就是所有結點的度之和 二 度的計算 1.設樹t的度為4,其中度為1,2,3,4的節點個數分別為4,2,1,1,...

C語言 二叉樹計算 求葉子結點數目,樹的高度

define crt secure no warnings include include 二叉樹結點 typedef struct binarynode binarynode 遞迴求葉子數量 void calculateleafnum binarynode root,int leafnum if ...