第九周项目二 二叉树遍历递归算法

来源:互联网 发布:自学数据库视频教程 编辑:程序博客网 时间:2024/06/06 03:27

问题及代码

/**Copyright(c)2017,烟台大学计算机学院*All right reserved.*文件名:main.cpp btree.h btree.cpp*作者:王万兴*完成日期:2017年11月2日*版本号:v1.0**问题描述:先序,中序,后序输出二叉树*输入描述:无*程序输出:见运行结果*/#include <stdio.h>#include "btree.h"void preorder(BTNode *p){    if(p!=NULL)    {        printf("%c",p->data);        preorder(p->lchild);        preorder(p->rchild);    }}void inorder(BTNode *p){    if(p!=NULL)    {        preorder(p->lchild);        printf("%c",p->data);        preorder(p->rchild);    }}void postorder(BTNode *p){    if(p!=NULL)    {        preorder(p->lchild);        preorder(p->rchild);        printf("%c",p->data);    }}int main(){    BTNode *b,*p,*lp,*rp;    CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");    printf("  (1)先序输出二叉树:");    preorder(b);    printf("\n");    printf("  (2)中序输出二叉树:");    inorder(b);    printf("\n");    printf("  (3)后序输出二叉树:");    postorder(b);    printf("\n");    DestroyBTNode(b);    return 0;}

二叉树算法库

运行结果


知识点总结

通过递归,依次进行三种取数操作。


阅读全文
0 0
原创粉丝点击