中序遍历 递归/迭代 代码(C)本文地址: http://blog.csdn.net/caroline_wendy中序遍历(InOrder)作为二叉搜索树的排序方式, 有着重要的作用.递归和迭代的方法都需要掌握, 迭代主要使用了栈(stack)进行输入输出.代码:/*
* main.cpp
*
* Created on: 2014.9.18
* Author: Spike
*...
分类:
其他好文 时间:
2014-09-22 11:48:28
阅读次数:
186
二叉树有三种递归的遍历方式:先序遍历,先父节点 然后左孩子 最后右孩子中序遍历,先左孩子 然后父节点 最后父节点后序遍历,先左孩子 然后右孩子 最后父节点这里有更详细的解释:http://blog.csdn.net/sicofield/article/details/9066987紫书上面写错了,后...
分类:
其他好文 时间:
2014-09-22 00:50:21
阅读次数:
242
二叉搜索树:
二叉树的查找很简单,先序后序中序都可以,一开始要判断是否为空。
插入要判断一下是否存在,查找时同时记录其父节点,然后直到找到空节点,插入。
删除比较复杂一点:
逐一判断:
先判断是否为空,然后查找到要删除的节点p,并记录其父节点q,如果查不到,返回false;
当p节点有两个子树时,查到其中序遍历的后继节点,即排序后的之后以为,记为s。查找的同时记录s的父节点r,然后将s...
分类:
其他好文 时间:
2014-09-18 22:22:54
阅读次数:
278
中序遍历void ConvertNode(BSTreeNode* pNode, BSTreeNode*& pLastNodeInList){ if(pNode == NULL) return; BSTreeNode *pCurrent = pNode; ...
分类:
其他好文 时间:
2014-09-16 18:51:40
阅读次数:
240
struct TreeNode { struct TreeNode* left; struct TreeNode* right; char elem; }; TreeNode* BinaryTreeFromOrderings(char* inorder, ...
分类:
其他好文 时间:
2014-09-15 12:50:08
阅读次数:
167
Construct Binary Tree from Preorder and Inorder Traversal 结题报告
从前序遍历和中序遍历的结果重建一颗二叉树。
解题思路,随便写一个二叉树,然后写出前序和中序遍历的结果会发现特点。
二叉树的首节点必然是前序遍历的第一个节点,以这个节点在中序遍历的结果中作为划分,这个节点左侧的是左子树的节点,右侧是右子树节点。
例如,一个二叉...
分类:
其他好文 时间:
2014-09-14 20:48:47
阅读次数:
176
题目:UVA536 - Tree Recovery(递归)
题目大意:给出一棵二叉树的前序遍历和中序遍历,求后序遍历。
解题思路:根据前序遍历将中序遍历的序列分成一棵棵子树,知道这个子树只有一个节点,然后就可以将它按顺序放到后序数组值中了。
代码:
#include
#include
const int N = 30;
char preord[N], inor...
分类:
其他好文 时间:
2014-09-12 12:04:23
阅读次数:
216
题目连接:点击打开链接
在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果。
输入
...
分类:
其他好文 时间:
2014-09-11 23:52:22
阅读次数:
184
首先根据前序和中序构造一棵二叉树,然后利用中序遍历和广度优先将树按照形状打印出来。#include #include #include #define MAX 1000/*print the treefirst:using the preorder and inoder,create a treet...
分类:
其他好文 时间:
2014-09-11 22:07:52
阅读次数:
233