⑴ 中序輸出二叉樹中各結點的值及其所對應的層次數。 (c++)
1、首先第一步二叉樹就是每個節點(Node)最多隻有兩個子節點的樹結構,且子樹有左右之分,不能任意顛倒順序,借著就是根據二叉樹的特性,便有了二叉排序樹.,要注意一般數據以二叉樹作為數據結構儲存時,都是按照二叉排序樹的一般規則("小放左,大放右")。
⑵ C語言二叉樹求最大值求指點
問題出在max這個變數上。臨時變數么有返回。可以將這個函數
int getmax(btnode*t,int max)
{
if(t!=NULL)
{
if(max<t->data)
max=t->data;
getmax(t->lchild,max);
getmax(t->rchild,max);
}
return max;
}
修改為:
intgetmax(btnode*t,int*max)
{
if(t!=NULL)
{
if(*max<t->data)
*max=t->data;
getmax(t->lchild,max);
getmax(t->rchild,max);
}
return*max;
}
另外,你要注意你的編碼格式了。需要按照一定的格式來編寫,這樣可以讓別人看的時候更清晰。
⑶ C語言二叉樹
BFS廣度搜索就可以了
⑷ 求C程序 用二叉樹結構求出最大值和最小值
先建一棵空的二叉排序樹,以次插入,構建二叉排序樹,先序遍歷,第1個即是最小值,最後一個即是最大值。
⑸ C語言關於二叉樹的度的演算法
可憐的管理員哭泣著亂踹兩腳
被映得粉亮的翅膀,直到拖著尖銳的
我們為之乾杯的死亡,
父親戴一件絨毛狀火紅頭飾
讓路。白日懷疑自己,
她每天只就讓復一個工作哈哈
⑹ 從一棵二叉樹中查找出所有結點的最大值。
#include <stdio.h>//頭文件
#include <stdlib.h>
#include <malloc.h>
typedef struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
}
BiTNode,*BiTree;//定義結點類型
int max=-100;//把max定義得足夠小
BiTree CreateBiTree()//先序遞歸創建樹
{
int p;BiTree T;
scanf("%d",&p);//注意每輸入兩個值的時候用空格各隔開
if(p==0)
T=NULL;
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));//為結點開辟空間
T->data=p;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
}
return (T);
}
int Max(BiTree T)//求最大(遞歸演算法)
{
if(T==NULL)
return 0;
if(T!=NULL)
{
if(T->data>max)
max=T->data;
Max(T->lchild);
Max(T->rchild);
}
return max;
}
void main()//主函數
{
BiTree Ta;
Ta=CreateBiTree();
printf("最大值是:\n");
printf("%d",Max(Ta));
}
原理很簡單,隨便通過一種遍歷(我用的是先序),先把根節點的值給max,然後在訪問其他節點的時候判斷那個值是否更大,如果是就賦值給max,最後就可以找到最大值了。
想了一下,如果用遞歸的話就不要用到棧了,這樣更簡單,如果你需要非遞歸的話可以聯系我。你不會創建樹可以聯系。