#include <stdio.h>
#include <stdlib.h>

struct BTNode
{
char data ;
struct BTNode * pLchild ;
struct BTNode * pRchild ;
} ;
struct BTNode * creatBTree(void);
void PreTraverseBTree(struct BTNode * pT) ;
int main()
{
struct BTNode * pT= creatBTree();
//PreTraverseBTree(pT);
// InTraverseBTree(pT);
PostTraverseBTree(pT);

return 0 ;
}

struct BTNode * creatBTree(void)
{
struct BTNode * pA =(struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pB =(struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pC =(struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pD =(struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pE =(struct BTNode *)malloc(sizeof(struct BTNode));
pA->data ='A';
pB->data ='B';
pC->data ='C';
pD->data ='D';
pE->data ='E';

pA->pLchild =pB ;
pA->pRchild =pC ;
pB->pLchild =pB->pRchild = NULL ;
pC->pLchild =pD ;
pC->pRchild =NULL ;
pD->pLchild =NULL ;
pD->pRchild=pE ;
pE->pLchild =pE->pRchild =NULL ;
return pA ;
}
//先序遍历
void PreTraverseBTree(struct BTNode * pT)
{
if(pT!=NULL)
{
printf("%c\n",pT->data);

if(pT->pLchild!=NULL)
{
PreTraverseBTree(pT->pLchild);
}
if(pT->pRchild!=NULL)
{
PreTraverseBTree(pT->pRchild);
}
}
/*
先访问跟节点
再先序访问左子树
再先序访问右子树*/
}
//中序遍历
void InTraverseBTree(struct BTNode * pT)
{
if(pT!=NULL)
{
if(pT->pLchild!=NULL)
{
InTraverseBTree(pT->pLchild);
}

printf("%c\n",pT->data);

if(pT->pRchild!=NULL)
{
InTraverseBTree(pT->pRchild);
}
}
/*

先中序访问左子树
再访问跟节点
再中序访问右子树*/
}
//后序遍历
void PostTraverseBTree(struct BTNode * pT)
{
if(pT!=NULL)
{
if(pT->pLchild!=NULL)
{
PostTraverseBTree(pT->pLchild);
}
if(pT->pRchild!=NULL)
{
PostTraverseBTree(pT->pRchild);
}
printf("%c\n",pT->data);
}
/*
先后序访问左子树
再后序访问右子树
再访问跟节点*/
}

C语言实现链式二叉树静态创建,(先序遍历),(中序遍历),(后续遍历)的更多相关文章

  1. 链式二叉树的实现(Java)

    定义树节点: package 链式二叉树; public class TreeNode { private Object data; private TreeNode left; private Tr ...

  2. C语言实现链式队列

    链式队列,简称"链队列",即使用链表实现的队列存储结构. 链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素, ...

  3. UVa 122 Trees on the level(链式二叉树的建立和层次遍历)

    题目链接: https://cn.vjudge.net/problem/UVA-122 /* 问题 给出每个节点的权值和路线,输出该二叉树的层次遍历序列. 解题思路 根据输入构建链式二叉树,再用广度优 ...

  4. Javascript、C#、php、asp、python 等语言的链式操作的实现

    一.什么是链式操作 把需要的下一步操作的对象通过上一步操作返回回来.使完成某些功能具有持续性. 二.链式操作优点 代码更精简优雅.链式操作能大大精简代码量,多项操作一行代码一气呵成,搞定: 链式操作应 ...

  5. c++实现二叉树的非递归创建以及非递归先序、中序、后序遍历

    二叉树的创建 思路:数组中从上到下依次放着二叉树中的元素,使用递归很容易实现,那么这里使用容器来存放之前的状态实现循环创建二叉树. TreeNode* createTree(int *arr, int ...

  6. 剑指offer——已知二叉树的先序和中序排列,重构二叉树

    这是剑指offer中关于二叉树重构的一道题.题目原型为: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2, ...

  7. 【算法】二叉树、N叉树先序、中序、后序、BFS、DFS遍历的递归和迭代实现记录(Java版)

    本文总结了刷LeetCode过程中,有关树的遍历的相关代码实现,包括了二叉树.N叉树先序.中序.后序.BFS.DFS遍历的递归和迭代实现.这也是解决树的遍历问题的固定套路. 一.二叉树的先序.中序.后 ...

  8. [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal 由先序和中序遍历建立二叉树

    Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  9. JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)

    import java.util.HashMap; import java.util.LinkedList; import java.util.Map; import java.util.Queue; ...

随机推荐

  1. zabbix-server配置文件详解

    zabbix官方文档:https://www.zabbix.com/documentation/4.0/zh/manual zabbix-server端的配置文件在/etc/zabbix/zabbix ...

  2. Qt Python Scriptable Application

    Qt Python Scriptable Application eryar@163.com Abstract. Python and C++ are in many ways as differen ...

  3. JMeter接口测试-如何循环使用接口返回的多值?

    前言 在用JMeter做接口测试的时候,经常会遇到这样一种情况:一个接口请求返回了多个值,然后下一个接口想循环使用前一个接口的返回值:第二种情况:只想循环请求前一个接口返回值中的随机不定长度的某一些值 ...

  4. 医院信息集成平台(ESB)实施、建设方案

    医院信息集成平台(ESB)实施.建设方案 基于中立.标准.开放的IT架构和数据标准,打造插拔式医院应用生态. 解决方案 基于ESB集成总线,构建医院信息化建设顶层设计.                 ...

  5. CSS中的vertical-align属性

    1,vertical-align属性的作用? 设置元素垂直对齐的方式: 2,该属性使用过程的注意点: 与text-align属性不同,text-align属性是设置给需要对齐元素的父元素的, 而ver ...

  6. ubuntu18.04管理redis

    ubuntu下 redis的安装使用 安装 1. 进入redis安装路径 cd ~/installed/redis-5.0.7 2. 启动redis 启动服务端redis-server 启动客户端(必 ...

  7. 802.11有线等效加密WEP

    有线等效加密(WEP)标准是802.11无线安全早期的解决方案,WEP并不安全. 既然WEP并不安全,为什么还要学习WEP呢? WEP简单,相比后续出现的加密协议,它不要求有多么强大的计算能力.一些老 ...

  8. 安装NFS到CentOS(YUM)

    运行环境 系统版本:CentOS Linux release 7.3.1611 软件版本:无 硬件要求:无 安装过程 1.配置YUM源 [root@localhost ~]# rpm -i https ...

  9. ThinkPHP 5.1.x远程命令执行漏洞利用, 参考POC

    thinkphp5.1.1为例 1.代码执行: http://192.168.0.108/public//index.php?s=index/\think\Request/input&filt ...

  10. Linux DMA访问的一致性

    DMA访问的一致性 DMA对内存是直接访问的,而CPU对内存的访问有时会通过cache.不管是CPU还是DMA访问内存,都需要确保cache的一致性.本文只分析从DMA的角度,对内存的访问如何确保ca ...