文档章节

小蚂蚁学习数据结构(26)——题目——输出二叉树上值大于x的算法

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2016/01/29 18:07
字数 462
阅读 79
收藏 5

题目要求:    

    设二叉树以二叉链表的形式存储,有关类型定义如下:

typedef struct BiTNode{

    int data;

    struct BiTNode * lchild, * rchild;

}BiTNode, * BiTree;

下面是求输出二叉树上值大于x的类_C算法,请填空

void Print_Big_Value(BiTree T,int x);    //T 是二叉树的根节点的指针

/*
	输出二叉树上值大于x的类c算法
*/
# include <stdio.h>
# include <malloc.h>

# define OK 1
# define ERROR 0

typedef struct BiTNode
{
	int data;
	struct BiTNode * lchild;
	struct BiTNode * rchild;
}BiTNode, * BiTree;

//创建二叉树
void CreateTree( BiTree & );
//中序遍历二叉树
void InOrderTraveler( BiTree &, int );

void CreateTree( BiTree & T )
{
	int data;
	scanf( "%d", &data );
	
	/*
		因为这次的数据域需要输入数字,忘了数字之间是需要空格分割的,
		所以出了一点差错。记得要以空格分割。
	*/
	if( 0 == data )
	{
		T = NULL;
	}
	else
	{
		T = ( BiTree )malloc( sizeof( BiTNode ) );
		if( NULL == T )
		{
			printf( "动态内存分配失败\n" );
			return;
		}
		T -> data = data;
		CreateTree( T -> lchild );
		CreateTree( T -> rchild );
	}
}
 
/*
	中序遍历二叉树,
	遍历结点的时候,判断是否大于或小于某个值,然后依照判断输出
*/
void InOrderTraveler( BiTree &T, int i )
{
	if( NULL != T )
	{
		InOrderTraveler( T -> lchild, i );
		if( T->data > i )
		{
			printf( "%d ", T->data );
		}			
		InOrderTraveler( T -> rchild, i );
	}
}

int main( void )
{
	BiTree Tree;
	int i = 10;
	
	printf( "创建一颗二叉树,注意数字间的空格:\n" );
	CreateTree( Tree );
	
	printf( "大于%d的节点为:\n", i );
	InOrderTraveler( Tree, i );
	
	printf( "\n" );
	
	return 0;
}
/*
	VC++6.0的输出结果是:
	=====================================
	创建一颗二叉树,注意数字间的空格:
	23 43 0 0 2 0 0
	大于10的节点为:
	43 23
	=====================================
	总结:
		以前写过很多遍,都是数据域保存的都是字符,今天突然换成了
		数字,给完了添加空格作为分割。
		切记,数字间的分割。
*/


    学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog



© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 142
博文 161
码字总数 100864
作品 0
郑州
程序员
私信 提问
若干数据结构 && 算法面试题【四】(更新ing)

这是我的第三个面试题汇总。 想看之前的内容请移步 http://zhweizhi.blog.51cto.com/10800691/1763237 若干数据结构 && 算法面试题【一】更新完毕 http://zhweizhi.blog.51cto.com/10800691/...

shangluyi
2016/07/08
0
0
数据结构与算法(3)——树(二叉、二叉搜索树)

前言:题图无关,现在开始来学习学习树相关的知识 前序文章: 数据结构与算法(1)——数组与链表(https://www.jianshu.com/p/7b93b3570875) 数据结构与算法(2)——栈和队列(https://www.ji...

我没有三颗心脏
2018/07/11
0
0
LeetCode算法练习——深度优先搜索 DFS

更多干货就在我的个人博客 BlackBlog.tech 欢迎关注! 也可以关注我的csdn博客:黑哥的博客 谢谢大家! 网上大部分LeetCode的代码都没有给出注释和解释,对于新手学习很不方便。笔者在这里尽...

BlackBlog__
2018/07/30
0
0
【LeetCode】Path Sum(路径总和)

这道题是LeetCode里的第112道题。是我在学数据结构——二叉树的时候碰见的题。 题目要求: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相...

1000sakura
2018/11/25
0
0
数据结构——二叉树、二叉查找树

参考:Mark Allen Weiss 著《数据结构与算法分析——C语言描述》(第二版) 主要内容:二叉树及二叉查找树 一、二叉树 1 二叉树定义   二叉树是一棵每个节点都不能有多于两个儿子的树 2 实...

翠竹09
2018/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

操作数据库表

/* DML:数据库操作语言 主要对表中的数据库进行 增删改 ****增:插入一条记录 insert into 表名 (列名1,列名2..) values (值1,值2..) 注意: 1.列名可以在表中选择一列或者几列 2.后面的值 必须...

stars永恒
20分钟前
2
0
你真的了解 volatile 关键字吗?

volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容。 一、J...

Henrykin
20分钟前
1
0
条码插件TBarCode Office系列教程二(Word Add-In篇)

TBarCode Office是一款适用于Microsoft Word 2007、2010和2013的条码插件,通过此插件可以轻松的在您的文档中嵌入代码。此系列教程旨在介绍TBarCode Office的常见问题及解答,帮助大家学习使...

ymy_666666
20分钟前
1
0
折腾Java设计模式之命令模式

博客原文地址 折腾Java设计模式之命令模式 命令模式 wiki上的描述 Encapsulate a request as an object, thereby allowing for the parameterization of clients with different requests, ......

大萌小路
21分钟前
2
0
微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计

基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发持续集成的流程。平台提供基础设施、中间件、数据服务、云服务器等资...

编程SHA
22分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部