博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树
阅读量:3965 次
发布时间:2019-05-24

本文共 1341 字,大约阅读时间需要 4 分钟。

二叉树的基本操作

#include 
#include
typedef char elemtype;typedef struct btnode /*定义结点类型*/ {
elemtype data; struct btnode *lchild,*rchild; }bitnode,*bitree;bitree createbitree() {
bitree t; char ch; scanf("%c",&ch); if(ch==' ') t=NULL; else {
t=(bitnode *) malloc (sizeof(bitnode)); /*申请生成新的结点*/ t->data=ch; t->lchild=createbitree(); /*递归构造左子树*/ t->rchild=createbitree(); /*递归构造右子树*/ } return t; }void preordertraverse(bitree bt) /*先序遍历二叉树的递归算法*/ {
if(bt!=NULL) {
printf("%c",bt->data); /*访问根结点*/ preordertraverse(bt->lchild); /*先序遍历左子树*/ preordertraverse(bt->rchild); /*先序遍历右子树*/ } }void inordertraverse(bitree bt) /*中序遍历二叉树的递归算法*/ {
if(bt!=NULL) {
inordertraverse(bt->lchild); /*先序遍历左子树*/ printf("%c",bt->data); /*访问根结点*/ inordertraverse(bt->rchild); /*先序遍历右子树*/ } }void postordertraverse(bitree bt) /*后序遍历二叉树的递归算法*/ {
if(bt!=NULL) {
postordertraverse(bt->lchild); /*先序遍历左子树*/ postordertraverse(bt->rchild); /*先序遍历右子树*/ printf("%c",bt->data); /*访问根结点*/ } }void main(){
bitree bt1; printf("创建二叉树:\n"); bt1=createbitree(); printf("先序遍历结果:"); preordertraverse(bt1); printf("\n"); printf("中序遍历结果:"); inordertraverse(bt1); printf("\n"); printf("后序遍历结果:"); postordertraverse(bt1); printf("\n");}

运行结果:

在这里插入图片描述

转载地址:http://bjyki.baihongyu.com/

你可能感兴趣的文章
GROUPING SETS、ROLLUP、CUBE
查看>>
数据类型和变量
查看>>
表连接(JOIN)
查看>>
游标(Cursor)
查看>>
复合语句(compound statement)
查看>>
DB2 物化查询表
查看>>
IF 语句
查看>>
循环语句
查看>>
DB2 临时表
查看>>
ITERATE、LEAVE、GOTO和RETURN
查看>>
异常处理
查看>>
存储过程
查看>>
动态SQL(Dynamic SQL)
查看>>
在存储过程之间传递数据
查看>>
迁移存储过程
查看>>
GET DIAGNOSTIC 语句
查看>>
Python 简介
查看>>
Python 注释
查看>>
Python 变量
查看>>
Python 数据类型 -- 数字
查看>>