資源簡介
二叉樹基本運算
代碼片段和文件信息
#include
#include
#define?MaxSize?100
typedef?char?ElemType;
typedef?struct?node
{
ElemType?data;
struct?node*?lchild;
struct?node*?rchild;
}BTNode;
void?CreateBTree(BTNode*&?bchar?*str)?????//創建二叉樹?
{
BTNode*?St[MaxSize]*p;
int?ktop?=?-1j?=?0;
char?ch?=?str[j];
while(str[j]?!=?‘\0‘)
{
switch(ch)
{
case?‘(‘:top++;k?=?1;St[top]?=?p;break;
case?‘)‘:top--;break;
case?‘‘:k?=?2;break;
default?:p?=?(BTNode*)malloc(sizeof(BTNode));
?????????p->data?=?ch;
?????????p->lchild?=?NULL;p->rchild?=?NULL;
?????????if(b?==?NULL)
?????????????b?=?p;
?????? ?else
?????? ?{
?????? ? switch(k)
?????? ? {
?????? ? case?1:St[top]->lchild?=?p;break;
?????? ? case?2:St[top]->rchild?=?p;break;
}
} ??????????
}
j++;ch?=?str[j];
}
}
void?DestroyBTree(BTNode*&?b) //銷毀二叉樹?
{
if(b?!=?NULL)
{
DestroyBTree(b->lchild);
DestroyBTree(b->rchild);
free(b);
}
}
- 上一篇:CrystalDiskMark硬盤測試工具 源碼
- 下一篇:基于單片機控制的穩壓電源
評論
共有 條評論