数据结构-C语言递归实现树的前中后序遍历
#include <stdio.h>
#include <stdlib.h>
typedef struct tree
{
int number ;
struct tree *left ;
struct tree *right ;
}TREE;
//对树插入节点
void insert_tree(TREE **header , int number)
{
//创建一颗树
TREE *New = NULL ;
New = malloc(sizeof(TREE));
if(NULL == New)
return ;
//初始化树节点的值
New->number = number ;
//分别将左子树和右子树设置为空
New->left = NULL ;
New->right = NULL ;
TREE **link = header ;
TREE *cur ;
while(cur = *link)
{
//判断新插入的节点和之前的值之间谁大谁小
//小的就放在左子树,大的就放到右子树
if(New->number < cur->number)
//*link = cur->left ;
link = &(cur->left) ;
else
link = &(cur->right) ;
}
*link = New ;
}
//打印树
void print_tree(TREE *header , int lever)
{
if(header == NULL)
return ;
print_tree(header->right , lever+1);
int i ;
for(i = 0 ; i < lever ; i++)
printf("\t");
printf("%d\n" , header->number);
print_tree(header->left , lever+1);
}
//树的前序遍历
void front(TREE *header)
{
if(header == NULL)
return ;
printf("%d " , header->number);
front(header->left);
front(header->right);
}
//树的中序遍历
void middle(TREE *header)
{
if(header == NULL)
return ;
middle(header->left);
printf("%d " , header->number);
middle(header->right);
}
//树的后序遍历
void back(TREE *header)
{
if(header == NULL)
return ;
back(header->left);
back(header->right);
printf("%d " , header->number);
}
int main(void)
{
int i ;
int buffer[10] ;
TREE *header = NULL ;
for(i = 0 ; i < 10 ; i++)
{
buffer[i] = rand()%100 ;
}
for(i = 0 ; i < 10 ; i++)
{
//给树插入元素
insert_tree(&header , buffer[i]);
}
print_tree(header , 1);
printf("\n前序遍历\n");
front(header);
printf("\n中序遍历\n");
middle(header);
printf("\n后序遍历\n");
back(header);
getchar();
}
数据结构-C语言递归实现树的前中后序遍历的更多相关文章
- [C++] 非递归实现前中后序遍历二叉树
目录 前置技能 需求描述 binarytree.h 具体实现 binarytree.cpp main.cpp 网上代码一搜一大片,大同小异咯. 书上的函数实现代码甚至更胜一筹,而且抄一遍就能用,唯一问 ...
- C++二叉树前中后序遍历(递归&非递归)统一代码格式
统一下二叉树的代码格式,递归和非递归都统一格式,方便记忆管理. 三种递归格式: 前序遍历: void PreOrder(TreeNode* root, vector<int>&pa ...
- Binary Tree Traversal 二叉树的前中后序遍历
[抄题]:二叉树前序遍历 [思维问题]: 不会递归.三要素:下定义.拆分问题(eg root-root.left).终止条件 [一句话思路]: 节点非空时往左移,否则新取一个点 再往右移. [输入量] ...
- C语言二叉树的创建、(先中后序)遍历以及存在的问题
#include<stdlib.h> #include<stdio.h> #define True 1 #define False 0 typedef char TElemTy ...
- POJ 2255 Tree Recovery && Ulm Local 1997 Tree Recovery (二叉树的前中后序遍历)
链接:poj.org/problem?id=2255 本文链接:http://www.cnblogs.com/Ash-ly/p/5463375.html 题意: 分别给你一个二叉树的前序遍历序列和中序 ...
- C++实现对树的创建和前中后序遍历
#include<iostream>#include<stdio.h> using namespace std; class BitNode{ public: char dat ...
- 前中后序递归遍历树的体会 with Python
前序:跟->左->右 中序:左->根->右 后序:左>右->根 采用递归遍历时,编译器/解释器负责将递归函数调用过程压入栈并保护现场,在不同位置处理根节点即可实现不 ...
- 二叉树前中后/层次遍历的递归与非递归形式(c++)
/* 二叉树前中后/层次遍历的递归与非递归形式 */ //*************** void preOrder1(BinaryTreeNode* pRoot) { if(pRoot==NULL) ...
- Qt实现 动态化遍历二叉树(前中后层次遍历)
binarytree.h 头文件 #ifndef LINKEDBINARYTREE_H #define LINKEDBINARYTREE_H #include<c++/algorithm> ...
随机推荐
- Android ListView中Item点击事件失效解决方案
欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...
- Java的访问权限详解(3+1)public private protected default
Java使用三个关键字在类的内部设定访问权限:public.private.protected.这些访问指定词(access specifier)决定了紧跟其后被定义的成员(方法或属性)可以被谁使用. ...
- spark idea 的配置问题
不知道下面的错误是为什么? Error:scalac: missing or invalid dependency detected while loading class file 'RDD.cla ...
- iOS下JS与原生OC互相调用(总结)
这是去年总结的一篇文章,也一并先放到这个目录下好了. iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式. JS调用原生OC篇 方 ...
- 根据iOS 10 的新特性,创建iMessage App,可用于自定义表情
第一. 介绍(原文作者 澳大利亚19岁少年--Davis Allie ----原文地址) 随着iOS10的发布,苹果对开发者开放了Messages应用程序,开发人员现在可以创建他们自己的各种类型 并且 ...
- Android View框架总结(一)
View和Activity的区别 View有哪些? ViewGroup是什么? 为什么Google产生ViewGroup? View的层级结构是什么? View的onMeasure()/onLayou ...
- 1085. Perfect Sequence (25) -二分查找
题目如下: Given a sequence of positive integers and another positive integer p. The sequence is said to ...
- Dynamics CRM 2015Online Update1 new feature之表单页Tabs切换
CRM2011的界面相对于CRM4.0进行了比较大的改动,N久没见过4.0的界面了所以忘了表单是什么样子的了,但2011的表单中若含有多个tab的话,是可以通过左侧栏进行切换,话说2013的界面相对2 ...
- iOS中 本地通知/本地通知详解 韩俊强的博客
布局如下:(重点讲本地通知) iOS开发者交流QQ群: 446310206 每日更新关注:http://weibo.com/hanjunqiang 新浪微博 Notification是智能手机应用编 ...
- 【VSTS 日志】TFS 2015 Update 1 发布 – Git和TFVC代码库可以混合使用了
Visual Studio Team Foundation Server 2015 Update 1已经发布了. 这是 Team Foundation Server (TFS) 的最新版本,是 Mic ...