正在加载图片...
//头文件包含 #include<stdlib. h> Include<stdio. h> #include<malloc. h> 函数状态码定义 #define true Define ok 1010 #define error #define overFlow -l Define Infeasible -2 #define null 0 typedef int Status /以下为二叉树的类型定义及创建、销毁、遍历、求树深、求结点数、叶结点数、复制、左右互换、查找、定 位双亲、删除、凹式输出等操作实现 /树中元素类型定义与二叉链表存储结构定义 typedef char TElemType typedef struct BiTNodet TElemType data struct bitNode *lchild. *rchild ) BiTNode, * BiTree Status CreateBiTree(BiTree&T)/先序创建二叉树各结点,注意输入时空指针不要丢 TElemType e scanf (%c", &e) if(e==’’)T=NUL T=(BiTree) malloc(sizeof (BiTNode)) if(!T)exit(OVERFLOW) CreateBiTree(T->lchild) CreateBiTree(T->rchild) return OK. Status DestroyBiTree( BiTree&T)//销毁以T为根结点的树,注意T各子孙结点也要释放 if(T) Destroy Bi Tree(T->child) DestroyBi Tree(T->rchild) TENULL int TreeDepth(BiTree T)I if(T==NULL)d=0 el d1=TreeDepth(T->lchild) d2=Tree Depth(T->rchild) d=d1>=d2?d1+1: d2+1 t Node Count( BiTree T)i /递归法统计所有结点的个数 int n//头文件包含 #include<stdlib.h> #include<stdio.h> #include<malloc.h> //函数状态码定义 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW -1 #define INFEASIBLE -2 #define NULL 0 typedef int Status; //以下为二叉树的类型定义及创建、销毁、遍历、求树深、求结点数、叶结点数、复制、左右互换、查找、定 位双亲、删除、凹式输出等操作实现-------- //树中元素类型定义与二叉链表存储结构定义 typedef char TElemType; typedef struct BiTNode{ TElemType data; struct BiTNode *lchild, *rchild; } BiTNode, *BiTree; Status CreateBiTree(BiTree &T){//先序创建二叉树各结点,注意输入时空指针不要丢 TElemType e; scanf("%c",&e); if(e==' ')T=NULL; else{ T=(BiTree)malloc(sizeof(BiTNode)); if(!T)exit(OVERFLOW); T->data=e; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } return OK; } Status DestroyBiTree(BiTree &T)//销毁以T为根结点的树,注意T各子孙结点也要释放 { if(T){ DestroyBiTree(T->lchild); DestroyBiTree(T->rchild); free(T); T=NULL; } return OK; } int TreeDepth(BiTree T){ int d,d1,d2; if(T==NULL)d=0; else { d1=TreeDepth(T->lchild); d2=TreeDepth(T->rchild); d=d1>=d2?d1+1:d2+1; } return d; } int NodeCount(BiTree T){ //递归法统计所有结点的个数 int n;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有