实验六 二叉树1(1)

实验六 二叉树1(1)

ID:38499716

大小:42.00 KB

页数:4页

时间:2019-06-13

实验六 二叉树1(1)_第1页
实验六 二叉树1(1)_第2页
实验六 二叉树1(1)_第3页
实验六 二叉树1(1)_第4页
资源描述:

《实验六 二叉树1(1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验六 二叉树【实验目的】1、掌握二叉树的定义和各种基本存储结构,特别是链式实现;2、掌握二叉树的建立以及各种遍历算法;3、理解二叉树的性质;【实验要求】给出以及后序遍历,请大家完成算法:要求建立基于二叉链表的二叉树,建立二叉树的二叉链表存储并遍历,包括:1、先序遍历;2、中序遍历;3、后序遍历;4、层次遍历;5、求叶子结点数。#include#include#include#defineINFEASIBLE-1#defineOK1#defineERROR0#defineTRUE1#defineFALSE0typedefintStatu

2、s;typedefcharTElemType;//二叉树二叉链表储存结构typedefstructBiTNode{TElemTypedata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;//二叉树输入StatusCreateBiTree(BiTree&T){charch;scanf("%c",&ch);if(ch=='')T=NULL;else{if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))exit(0);T->data=ch;CreateBiTree(T->lchild);CreateBiTree(T->r

3、child);}returnOK;}//CreateBiTreeStatusVisit(TElemTypee){printf("%c",e);returnOK;}//先序排列StatusPreOrderTraverse(BiTreeT,Status(*Visit)(TElemTypee)){if(T){if(Visit(T->data))if(PreOrderTraverse(T->lchild,Visit))if(PreOrderTraverse(T->rchild,Visit))returnOK;returnERROR;}elsereturnOK;}//PreOrderTraverse//

4、中序遍历StatusInOrderTraverse(BiTreeT,Status(*Visit)(TElemTypee)){if(T){if(InOrderTraverse(T->lchild,Visit))if(Visit(T->data))if(InOrderTraverse(T->rchild,Visit))returnOK;returnERROR;}elsereturnOK;}//InOrderTraverse//后序遍历StatusHouOrderTraverse(BiTreeT,Status(*Visit)(TElemTypee)){if(T){if(HouOrderTravers

5、e(T->lchild,Visit))if(HouOrderTraverse(T->rchild,Visit))if(Visit(T->data))returnOK;returnERROR;}elsereturnOK;}//HouOrderTraverseintLeafCount_BiTree(BiTreeT)//求二叉树中叶子结点的数目{if(!T)return0;//空树没有叶子elseif(!T->lchild&&!T->rchild)return1;//叶子结点elsereturnLeafCount_BiTree(T->lchild)+LeafCount_BiTree(T->rchil

6、d);//左子树的叶子数加上右子树的叶子数}//LeafCount_BiTreemain(){BiTreeT;intxz=3,xz1=4;do{printf("............二叉树..............");printf(".....1.按先序遍历输入二叉树.....");printf(".....2.输出二叉树...............");printf(".....3.退出.....................");printf("................................");scanf("%d",&xz);if(xz==

7、1)CreateBiTree(T);if(xz==2){printf("..........输出二叉树.............");printf("..........1.先序遍历输出.........");printf("..........2.中序遍历输出.........");printf("..........3.后序遍历输出.........");printf("...

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。