二叉树的代码实现

二叉树是一种特殊的树型结构,一般都以二叉树作为树型结构学习的案例讲解。
二叉树的主要操作有遍历,例如有先序遍历、中序遍历、后序遍历。在遍历之前,就是创建一棵二叉树,当然,还需要有删除二叉树的算法。
以二叉树的创建、删除、先序遍历为例,实现代码如下
#include #include typedef char elemtype;typedef struct node{ elemtype data; struct node *lchild, *rchild;} btnode; btnode * createtree(btnode *tree){ elemtype e; fflush(stdin); scanf(%c, &e); if(e != '#'){ tree = (btnode *)malloc(sizeof(btnode)); tree->data = e; tree->lchild = null; tree->rchild = null; tree->lchild = createtree(tree->lchild); tree->rchild = createtree(tree->rchild); } return tree;}void destroybtree(btnode *b){ if (b==null) return ; else { destroybtree(b->lchild); destroybtree(b->rchild); free(b); }}void preorder(btnode *b){ if (b!=null) { printf(%c ,b->data); preorder(b->lchild); preorder(b->rchild);}}int main(){ btnode *tree = createtree(tree); preorder(tree); destroybtree(tree); return 0;}测试用例如下
abd#g###ce##f##a b d g c e f以上测试用的测试案例,就是上述二叉树图形的结构,二叉树构成过程中,以先序的方式创建,子树为空的时候,输入为#
上述算法中,还可以做更多的优化,每一个优化都是一次进步。


苹果MacBook为什么使用USB-C接口?
如何使用机智云设备接入SDK来进行APP与设备之间的数据透传
Python 自制简单实用的日志装饰器
人脸识别技术在安防领域潜力究竟如何?
高光谱成像技术鉴别菠菜叶片农药残留种类
二叉树的代码实现
机器学习在预测药物心脏毒性的所有主要形式中起着关键作用
EUV工艺不同多重图形化方案的优缺点及新的进展研究
如何构建一个双编码器神经网络模型
随着产业发展的不断成熟,机器人底盘或将迎来一个低成本定制化时代
人工智能领域多模态的概念和应用场景
公司这套架构统一处理try...catch真香!
M2还未发布就有M3消息?据称苹果新款iMac将搭载M3芯片
测量CDMA2000和W-CDMA高功率放大器中的射频功率
MGA-635P8超低噪声放大器特性分析
小米6S首发!自研的松果处理器八核心A53:媲美骁龙835
镭神激光雷达Inside|五菱太空舱、五菱无人驾驶观光车为运营提供新思路
福禄克万用表如何维护保养
清锋自研全球专利技术助力弹性体3D打印智造
基于MAX+plusⅡ开发平台的EDA设计方法