用c语言编程实现二叉树的建立和遍历二叉树
来源:互联网 发布:手机cpu调频软件 编辑:程序博客网 时间:2024/04/28 22:09
T) exit(OVERFLOW);T->data=ch;//创建左子树CreateBiTree(T->lchild);//创建右子树CreateBiTree(T->rchild);}return OK;}//输出元素dataStatus PrntTElem(TElemType data){putchar(data);return OK;}//先序遍历二叉树Status PreOrderTraverse(BiTree T *rchild;//左右孩子指针}BiTNode //这是我上数据结构写的 建议理解为主#include<stdio.h>#include<stdlib.h>#define ERROR 0#define OK 1#define OVERFLOW -2#define FLASE 0#define TURE 1typedef int Status;typedef char TElemType;typedef struct BiTNode{TElemType data;struct BiTNode *lchild T->rchild)return 1;else return BiTreeLeaves(T->lchild)+BiTreeLeaves(T->rchild);}//销毁int DestroyBiTree(BiTree &T){if(T){if(DestroyBiTree(T->lchild))if(DestroyBiTree(T->rchild))T=NULL;}return OK;}void main(){BiTree T;CreateBiTree(T);printf("先序结果为:");PreOrderTraverse(T visit))if(visit(T->data))return OK;return ERROR;}else return OK;}//求二叉树深度int BiTreeDepth(BiTree T){ int ldep=0 visit))if(PostOrderTraverse(T->rchild Status(*visit)(TElemType e)){if(T){if(PostOrderTraverse(T->lchild visit))return OK;return ERROR;}else return OK;}//后序遍历二叉树Status PostOrderTraverse(BiTree T visit))if(visit(T->data))if(InOrderTraverse(T->rchild Status(*visit)(TElemType e)){if(T){if(InOrderTraverse(T->lchild visit))return OK;return ERROR;}else return OK;}//中序遍历二叉树Status InOrderTraverse(BiTree T visit))if(PreOrderTraverse(T->rchild Status(*visit)(TElemType e)){if(T){if((*visit)(T->data))if(PreOrderTraverse(T->lchild *BiTree;//构造一个二叉树Status CreateBiTree(BiTree &T){TElemType str[]="ABC$$D$EF$$G$$$";static int i=0;TElemType ch;ch=str[i++];if(ch=='$')T=NULL;else{//创建树结点T=(BiTNode*)malloc(sizeof(BiTNode));if( T->lchild&& T)return 0;else if( PrntTElem);printf("/n");} PrntTElem);printf("/n后序结果为:");PostOrderTraverse(T PrntTElem);printf("/n中序结果为:");InOrderTraverse(T BiTreeLeaves(T));DestroyBiTree(T);printf("先序结果为:");PreOrderTraverse(T BiTreeDepth(T));printf("叶子数为: %d/n" PrntTElem);printf("/n二叉树的深度为: %d/n" PrntTElem);printf("/n后序结果为:");PostOrderTraverse(T PrntTElem);printf("/n中序结果为:");InOrderTraverse(T rdep=0; if(T==NULL) return 0; ldep=BiTreeDepth(T->lchild); rdep=BiTreeDepth(T->rchild); if(ldep>=rdep) return ldep+1; else return rdep+1; }//求叶子数int BiTreeLeaves(BiTree T){if(
- 用c语言编程实现二叉树的建立和遍历二叉树
- C实现二叉树的建立和遍历
- C语言实现二叉树的遍历
- 编程实现二叉树的建立,前序遍历,中序遍历和后续遍历
- c语言实现二叉树(BiNodeTree)的建立与先序遍历,中序遍历
- 编程实现二叉树的建立与遍历
- C语言实现二叉树的建立、遍历以及表达式的计算
- 平衡二叉树的建立,查找,插入,调整,遍历的C语言实现
- 二叉树的建立与遍历(C语言简单实现)
- c语言实现线索二叉树的建立,线索化以及遍历
- 递归实现二叉树的建立及前中后序遍历 c
- 二叉树的建立和遍历程序代码(Java,C)
- 二叉树的建立及遍历实现
- 数据结构:二叉树的建立和遍历(C#实现)
- 顺序结构实现二叉树的建立和各种遍历
- 一种二叉树的建立和遍历实现
- 二叉树遍历及C语言实现
- 二叉树遍历及C语言实现
- 学好C语言记住什么很关键
- 谁能告诉我C#的工具哪有啊
- C++程序语言怎么样
- C++怎么查看结果(DEV-CPP)
- 用C语言编辑的魔方阵脚本谁能提供一个
- 用c语言编程实现二叉树的建立和遍历二叉树
- 又奖励哦 我急用 麻烦推荐一本C语言入门的书
- C语言中clrscr()是什么意思
- C++设计题
- 谁知道我电脑菜鸟用什么学C语言好
- c语言简单应用
- 一起学习VB和C的效率
- 求用c语言验证哥德巴赫猜想
- C语言要怎么学好学