c语言二叉树静态存储,C语言实现链式二叉树静态创建,(先序遍历),(中序遍历),(后续遍历)...

#include

#include

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);

}

/*

先后序访问左子树

再后序访问右子树

再访问跟节点*/

}

链式二叉树的实现(Java)

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

C语言实现链式队列

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

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

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

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

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

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

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

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

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

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

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

[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 ...

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

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

随机推荐

关于SQLSERVER中用SQL语句查询的一些个人理解

作为一个编程菜鸟说真的很难有什么见解,也就是写给一些刚学习编程的人,希望能给他们一些帮助吧! SQLSERVER作为刚开始入门学习的数据库,SQL语句也并不算太难!说白了也就是建库,建表,建约束,对数 ...

C# Math类简介

Math.abs() 计算绝对值. Math.acos() 计算反余弦值. Math.asin() 计算反正弦值. Math.atan() 计算反正切值. Math.atan2() 计算从x 坐标轴到 ...

android edittext 去边框

EditText的background属性设置为@null就搞定了:android:background="@null" style属性倒是可加可不加 附原文:@SlumberMa ...

SAP BDC说明

简单说一下这个DBC,之前也一直在用,每次找记录都很麻烦,所以今天干脆就记下来吧 T-CODE:SHDB 输入个NAME,T-CODE.然后执行...最后用保存或者返回来结束录屏. 然后选择记录,创建 ...

struts2的工作机制

struts2的工作机制 原文:http://eoasis.iteye.com/blog/642586 概述 本章讲述Struts2的工作原理. 读者如果曾经学习过Struts1.x或者有过Strut ...

jQuery Validate插入 reomte使用详细的说明

在用户注冊时常常要通过ajax请求推断用户账号是否已注冊,最方便的方法便是用jQuery Validate插件 reomte方法 Jquery Validate插件, 调用远程方法验证參数, remo ...

ruby读取源代码自身的一种方法

我们知道ruby中如果源代码中一行开头(必须在行的开头)有__END__标示,则表示下面的都是数据行,可以用IO对象DATA来访问这些行.但是如果我们用DATA.rewind一下的话,就可以将文件流指 ...

Cordova开发App入门之创建android项目

Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑 ...

【HBase】Rowkey设计【转】

本章将深入介绍由HBase的存储架构在设计上带来的影响.如何设计表.row key.column等等,尽可能地使用到HBase存储上的优势. Key设计 HBase有两个基础的主键结构:row key ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值