博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
温习二叉树的建立和先序 中序 后序遍历 嵌套
阅读量:7143 次
发布时间:2019-06-29

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

#include 
#include
typedef char DataType; typedef struct BiTNode {
DataType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //二叉树树的建立 先序 void CreateBiTree(BiTree T) {
char ch; if((ch=getchar())=='') *T=NULL; //读入为空,将相应指针置空 else {
*T=(BiTree)malloc(sizeof(BiTNode)); *T->data=ch; CreateBiTree(T->lchild);//构造左树 CreateBiTree(T->rchild);//构造右树 } } //CreateBiTree Status PreOrderTraverse(BiTree T,Status(*Visit)(DataType e)) {
if(T) {
if(Visit(T->data)) if(PreOrderTraverse(T->lchild,Visit)) if(PreOrderTraverse(T->rchild,Visit)) return OK; return ERROR; } else return OK; }//PreOrderTraverse
//中序遍历二叉树 采用链表结构存储 Status InOrderTraverse(BiTree T,Status(*Visit)(DataType e)) {
if(T) {
if(InOrderTraverse(T->lchild,Visit)) if(Visit(T->data))   if(InOderTraverse(T->rchild,Visit)) return OK;       else        return ERROR; } else return OK; }//InOrderTraverse
//------后序遍历二叉树---- Status EndOrderTraverse(BiTree T,(*Visit)(DataType e)) {
if(T) {
if(EndOrderTraverse(T->lchild,Visit)) if(EndOrderTraverse(T->rchild,Visit)) if(Visit(T->data)) return OK;         return ERROR; } else return OK; }//EndOrderTraverse int main() {
return 0; }

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

你可能感兴趣的文章
总结3
查看>>
告别2015, 展望2016
查看>>
CentOS7 64位安装mysql教程
查看>>
继承(类和结构继承)
查看>>
开通博客
查看>>
OSI七层协议和TCP/IP五层协议
查看>>
关于Linux内核学习(经典)
查看>>
简单理解java中timer的schedule和scheduleAtFixedRate方法的区别
查看>>
滤波电容的选择
查看>>
Selenium2+python自动化5-操作浏览器基本方法
查看>>
洛谷——P1012拼数字符串操作(拼接排序)
查看>>
LeetCode OJ:Maximum Depth of Binary Tree(二叉树最大深度)
查看>>
此实现不是Windows平台FIPS验证的加密算法的一部分
查看>>
Codeforces Round #306 (Div. 2) 550A Two Substrings
查看>>
UDP_TCP示意图
查看>>
解决Could not load file or assembly CefSharp.Core.dll的问题
查看>>
mvc jquery 修改 viewbag
查看>>
容器的使用(四)
查看>>
[Js]碰撞运动
查看>>
5分钟学会红黑树的删除(Deletion on red black tree)
查看>>