#include
typedef struct treestr_tree,*link_tree;
link_tree creat_tree(link_tree boot,int *p,int len)
if(pnode->data>new->data)
pnode->left=new;
else
pnode->right=new;
}return boot;
}//***********************************forder()*********************
void forder(link_tree boot)
}//*************************************morder()********************
void morder(link_tree boot)
}//******************************lorder()**************************
void lorder(link_tree boot)
}//***************************find()*****************************
void find(link_tree boot,int num)
else
}if(boot==null)
printf("no such number!/n");
}//***********************************lfind()*********************
link_tree lfind(link_tree boot,int num)
return null;
}//**************************************main()********************
main()
;//for(i=1;i<100;i++)
// a[i]=random()%10
int length=9;
boot=creat_tree(boot,a,length);
p=boot;
printf("the midorder is :/n");
morder(boot);
printf("/n");
printf("the forder is:/n");
forder(boot);
printf("/n");
printf("the lorder is:/n");
lorder(boot);
printf("/n");
printf("input you want to search number:");
scanf("%d",&num);
find(boot,num);
findnum=lfind(boot,num);
if(findnum==null)
printf("no this number!/n");
else
printf("find!/n");
}
建立二叉樹 後序建立二叉樹
由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...
二叉查詢樹與平衡二叉樹
二叉查詢樹的性質 對於樹中的每乙個節點x,它的左子樹中所有關鍵字值小於x的關鍵字值,它的右子樹中的所有關鍵字值大於x的關鍵字值。二叉查詢樹的平均深度為o logn 下面看一下它的相關的操作函式。刪除乙個二叉樹 遞迴形式 void makeempty treenode root 在二叉查詢樹中找都某個...
二叉樹 二叉查詢樹
構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...