zoukankan      html  css  js  c++  java
  • 数据结构 | 二叉树的创建和三种遍历方式

    二叉树的创建和三种遍历方式

    帮同学写作业顺带复习了一下

    直接丢代码了:

    #include <stdio.h>
    #include <stdlib.h>
    
    
    // 二叉树节点结构体&指针类型
    typedef struct BiTNode 
    {
    	char data;    // 数据域
    	struct BiTNode* lchild;  // 左孩子
    	struct BiTNode* rchild; // 右孩子
    }BiTNode, *BiTree;
    
    
    void CreateBiTree(BiTree &T){
    	// 前序遍历创建二叉树
    	char data;
    	scanf("%c", &data);
    	if (data != '#'){           // 遇到#表示当前树结束
    		T = new BiTNode;          // 生成根节点
    		T->data = data;             // 给数据域赋值
    		CreateBiTree(T->lchild);         // 递归创建左子树
    		CreateBiTree(T->rchild);          // 递归创建右子树
    
    	}else{
    		T = NULL;       // 空树
    	}
    }
    
    
    // 前序遍历
    void PreOrderTraverse(BiTree T){
    	if(T){
    		printf("%c ", T->data);             // 访问根节点
    		PreOrderTraverse(T->lchild);      // 递归前序遍历左子树
    		PreOrderTraverse(T->rchild);      // 递归前序遍历右子树
    	}
    }
    
    // 中序遍历
    void InOrderTraverse(BiTree T){
    	if(T){
    		InOrderTraverse(T->lchild);      // 递归中序遍历左子树
    		printf("%c ", T->data);             // 访问根节点
    		InOrderTraverse(T->rchild);      // 递归中序遍历右子树
    	}
    }
    
    // 后序遍历
    void PostOrderTraverse(BiTree T){
    	if(T){
    		PostOrderTraverse(T->lchild);      // 递归后序遍历左子树
    		PostOrderTraverse(T->rchild);      // 递归后序遍历右子树
    		printf("%c ", T->data);             // 访问根节点
    	}
    }
    
    
    
    int main(){
    	BiTree bt = NULL;
    	CreateBiTree(bt);
    
    	printf("
    前序遍历:");
    	PreOrderTraverse(bt);
    
    	printf("
    中序遍历:");
    	InOrderTraverse(bt);
    
    	printf("
    后序遍历:");
    	PostOrderTraverse(bt);
    
    
    
    	return 0;
    }
    
    

    over.

    本文来自博客园,作者:Mz1,转载请注明原文链接:https://www.cnblogs.com/Mz1-rc/p/15408396.html

    如果有问题可以在下方评论或者email:mzi_mzi@163.com

  • 相关阅读:
    谁把天才变成了魔兽
    NetBeans 时事通讯(刊号 # 35 Nov 20, 2008)
    Java Annotation 手册
    《程序设计实践》读书笔记一
    5分钟让你明白金融危机爆发原因
    NetBeans 6.5 正式版可以下载了!
    Java Annotation 入门
    有关睡觉的学问
    oracle sql日期比较:
    C++编写安全OCX,IE不弹出安全提示
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/15408396.html
Copyright © 2011-2022 走看看