代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
创建、前序、中序、后序递归遍历二叉树
作者:
凡程子
/ 发布于
2013/7/1
/
760
/* 关于非线性的数据结构当然树形结构最重要,而树里面又属二叉树最重要, 所以在后面将列出二叉树的各种使用方法,包括基本的遍历,和我在一些 资料上看到的关于二叉树的面试题型。至于一些很高级的树形结构,如平 衡树,还有线索树等,就暂时不写出来,先完成最基本的,再一点点的加 */ #include <stdio.h> #include <stdlib.h> //typedef void * ElemType; typedef int ElemType; struct BinaryTreeNode { ElemType m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight; }; /* 二叉树主要的难点是遍历 基本上所有的算法都是基于二叉树的遍历的 至于创建二叉树就需要在输入的时候把线性的结构转换成非线性的 用输入的方式创建二叉树, */ //将输入独立起来, BinaryTreeNode * CreateTree(BinaryTreeNode *bTree) { int input; scanf("%d",&input); //按先序建立二叉树 if(input == 0) { bTree = NULL; //置为NULL后结束 return bTree; } bTree = (BinaryTreeNode *)malloc(sizeof(BinaryTreeNode)); bTree ->m_nValue = input; bTree->m_pLeft = CreateTree(bTree->m_pLeft); bTree->m_pRight = CreateTree(bTree->m_pRight); return bTree; } //三种递归遍历方法 void Preorder(BinaryTreeNode *bTree) //这个是先序遍历,先根,左子树,右子树 { if(bTree != NULL) { printf("%d ",bTree->m_nValue); Preorder(bTree->m_pLeft); Preorder(bTree->m_pRight); } } void Inorder(BinaryTreeNode *bTree) //中序遍历,左子树,根,右子树 { if(bTree != NULL) { Inorder(bTree->m_pLeft); printf("%d ",bTree ->m_nValue); Inorder(bTree ->m_pRight); } } void Postorder(BinaryTreeNode *bTree) //后序遍历,左子树,右子树,根 { if(bTree != NULL) { Postorder(bTree->m_pLeft); Postorder(bTree->m_pRight); printf("%d ",bTree ->m_nValue); } } int main() { BinaryTreeNode *bTree; bTree=CreateTree(bTree); printf("先序遍历结果为:\n"); Preorder(bTree); printf("\n"); printf("中序遍历结果为:\n"); Inorder(bTree); printf("\n"); printf("后序序遍历结果为:\n"); Postorder(bTree); printf("\n"); return 0; system("pause"); }
试试其它关键字
二叉树
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
凡程子
贡献的其它代码
(
4
)
.
CSS3渐变效果
.
创建、前序、中序、后序递归遍历二叉树
.
已知二叉树前序、中序遍历,求后序遍历
.
已知二叉树中序和后序遍历,求前序遍历
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3