#include<stdio.h>
#include<stdlib.h>
typedef int elemtype;
//宣告
typedef struct Tnode
{
elemtype data;
struct Tnode* left;
struct Tnode* right;
}Bnode,*Btree;
//1.初始化
void Btree_init(Btree* T)
{
*T=NULL;
}
//2.清除
void Btree_clear(Btree* T)
{
if(!(*T)) return;
Btree_clear(&(*T)->left);
Btree_clear(&(*T)->right);
free(*T);
T=NULL;
}
//1.創建
Btree Btree_create()
{
int m;
Btree T;
scanf("%d",&m);
T=(Btree)malloc(sizeof(Bnode));
if(m<=0) return NULL;
T->data=https://bbs.csdn.net/topics/m;
printf("請輸入%d左結點的值:",m);
T->left=Btree_create();
printf("請輸入%d右結點的值:",m);
T->right=Btree_create();
return T;
}
//2.列印
void Btree_print(Btree T)
{
if(!T)
return;
printf("%d ",T->data);
Btree_print(T->left);
Btree_print(T->right);
}
//3.深度
int Btree_depth(Btree T)
{
if(!T)
return 0;
int m=Btree_depth(T->left);
int n=Btree_depth(T->right);
if(m>n)
return m+1;
return n+1;
}
//4.葉結點
int Btree_leaf(Btree T)
{
if(!T)
return 0;
if(!T->left&&!T->right)
return 1;
return Btree_leaf(T->left)+Btree_leaf(T->right);
}
//5.查找
void Btree_search(Btree T,elemtype e)
{
if(!T)
return NULL;
if(T->data=https://bbs.csdn.net/topics/=e)
{
printf("查找成功\n");
return;
}
Btree_search(T->left,e);
Btree_search(T->right,e);
}
//5.插入
void Btree_insert(Btree* T,elemtype e)
{
Btree p;
printf("你好");
if(!(*T))
{
p=(Btree)malloc(sizeof(Bnode));
p->data=https://bbs.csdn.net/topics/e;
*T=p;
printf("你好");
return;
}
printf("你好");
if(e>(*T)->data)
Btree_insert((*T)->right,e);
else
Btree_insert((*T)->left,e);
}
//6.洗掉
Btree Btree_delete(Btree* T)
{
if(!(*T))
return NULL;
}
//6.統計
int Btree_count(Btree T)
{
if(!T)
return 0;
return Btree_count(T->left)+Btree_count(T->right)+1;
}
int main()
{
Btree T;
T=Btree_create();
Btree_print(T);
printf("深度%d\n",Btree_depth(T));
printf("葉結點%d\n",Btree_leaf(T));
Btree_search(T,5);
printf("總結點數%d\n",Btree_count(T));
Btree_insert(&T,6);
Btree_print(T);
}
大家好,請問下為啥插入操作運行不了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/71947.html
標籤:數據結構與算法
上一篇:【記錄】關于使用matplotlib出現ImportError: cannot import name 'is_scalar'問題
