树结构,尤其是二叉树结构是算法中常遇见的,这里根据学习过程做一个总结。 二叉树所涉及到的知识点有:满二叉树与完全二叉树、节点数目的关系、节点数与二叉树高度的关系、层次遍历、深度优先遍历、广度优先遍历等等。 这里对二叉树的基本结构实现c++版本以及python版本的代码,并且实现二叉树的前中后序遍历过 ...
分类:
编程语言 时间:
2016-09-17 23:40:24
阅读次数:
218
链接:poj.org/problem?id=2255 题意: 分别给你一个二叉树的前序遍历序列和中序遍历序列,让你给出这个二叉树的后序遍历序列. 思路: 对于二叉树的三种遍历方式,都可以使用递归来实现,那么也一定可以使用递归来拆解,以达到从遍历序列确定二叉树具体结构的目的.对于前序遍历来说,第一个字 ...
分类:
其他好文 时间:
2016-05-05 22:21:36
阅读次数:
232
二叉树的前中后序遍历,可以用递归秒解,看起来不值一提。但如果不允许采用递归,要怎么实现呢?还是先来看看递归算法的实现吧:def visit( root): if root is not null: #1 visit(root.left) ...
分类:
其他好文 时间:
2015-09-07 21:12:22
阅读次数:
174
Binary Tree Traversals
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4438 Accepted Submission(s): 2025
Problem Description
A binary tree...
分类:
其他好文 时间:
2015-08-01 10:03:55
阅读次数:
124
转载出处 http://www.cnblogs.com/AnnieKim/archive/2013/06/15/MorrisTraversal.html博主很认真,这里转载一下以防丢失链接本文主要解决一个问题,如何实现二叉树的前中后序遍历,有两个要求:1. O(1)空间复杂度,即只能使用常数空间;2...
分类:
其他好文 时间:
2015-04-28 07:03:17
阅读次数:
148
红黑树是建立在二叉查找树的基础之上的,关于二叉查找树可以参看【算法导论】二叉搜索树的插入和删除和【算法导论】二叉树的前中后序非递归遍历实现。对于高度为h的二叉查找树而言,它的SEARCH、INSERT、DELETE、MINIMUM、MAXIMUM等操作的时间复杂度均为O(h)。所以在二叉查找树的高度较高时,上述操作会比较费时,而红黑树就可以解决这种问题。...
分类:
编程语言 时间:
2015-01-14 12:49:51
阅读次数:
1480
二叉树的遍历是二叉树中最最基础的部分。这里整理二叉树不用递归实现三种顺序遍历的方式。不用递归的话,一般需要栈来完成。当然线索二叉树(不需要栈或递归)也可以完成中序遍历,这种方式在这篇文章中已经讨论过。这里着重讨论使用栈的实现方式。中序遍历(1) 双while,第二个内层while是为了不断压入lef...
分类:
其他好文 时间:
2014-12-08 02:03:20
阅读次数:
233
#include"stdio.h"
#include"malloc.h"
#definedatatypechar
typedefstructbT
{
datatypedata;
structbT*lt,*rt;
}*bitree,BiNode;
voidpreExCreate(bitreebt);
/*递归实现*/
voidFprePost(bitreebt)
{
if(bt)
{
printf("%c",bt->data);
FprePost(bt->lt);
FprePost(bt-&..
分类:
其他好文 时间:
2014-11-20 23:57:45
阅读次数:
308