1 #include 2 #include 3 4 const int maxn = 100; 5 6 int n; 7 char a[maxn], b[maxn]; 8 9 void dfs(int la, int ra, int lb, int rb) {10 if (la ...
分类:
其他好文 时间:
2014-12-12 14:51:04
阅读次数:
99
原文: 一步一步写算法(之二叉树深度遍历) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 深度遍历是软件开发中经常遇到的遍历方法。常用的遍历方法主要有下面三种:(1)前序遍历;(2)中序遍历;(3)后序遍历。按照递归的方法,这三种遍历的方法其...
分类:
编程语言 时间:
2014-12-11 10:11:35
阅读次数:
224
其中前序和中序,简单且容易理解。后序遍历有难度。
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct BiNode
{
char data;
struct BiNode *lchild,*rchild;
}BiNode,*...
分类:
其他好文 时间:
2014-12-10 16:27:47
阅读次数:
230
是#include
using namespace std;
//排序二叉树的性质
/*
*.终止条件:1.开始>=结尾返回真
*. 2.s >= e 因为不出现问题的话,一定能到达 s>=e的情况。知道到达了s >= e即为真
*.
1.最后一个节点是root
2.在root之前的节点 连续的大于root的是其右子树, 再之前连续小于root的...
分类:
编程语言 时间:
2014-12-09 17:51:32
阅读次数:
174
说起二叉树的遍历方式,这里可以分为两类 一、深度(也就是从上往下)
先序遍历
中序编列
后序遍历
二、广度(也就是从左往右)
层序遍历
下面是深度的三种遍历方式:
#include
using namespace std;
typedef struct BitNode{
char data;
struct BitNode *lchild, *rchild;
}Bi...
分类:
其他好文 时间:
2014-12-09 17:42:11
阅读次数:
191
我们都知道,对二叉树进行递归遍历非常简单,但递归算法需要额外的栈机制来存储每次递归的值。既然递归算法内部使用栈实现的,那么我们也可以借助于栈来实现二叉树的非递归遍历。下面我们将讲解利用非递归实现二叉树的前序、中序和后序遍历。
1、非递归二叉树前序遍历:
我们知道,二叉树的前序遍历对节点的访问顺序是根节点、左子节点然后右自节点。根据其访问顺序我们可以很容易用栈来实现。具体实现思路如下:
1、遍...
分类:
其他好文 时间:
2014-12-09 09:27:18
阅读次数:
189
题目1367:二叉搜索树的后序遍历序列
时间限制:1 秒内存限制:32 兆特殊判题:否提交:1359解决:684
题目描述:
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
输入:
每个测试案例包括2行:
第一行为1个整数n(1<=n<=10000),表示数组的长度。
第二行包含n个整数,表示这个数组,数组...
分类:
其他好文 时间:
2014-12-08 13:56:41
阅读次数:
138
二叉树的遍历是二叉树中最最基础的部分。这里整理二叉树不用递归实现三种顺序遍历的方式。不用递归的话,一般需要栈来完成。当然线索二叉树(不需要栈或递归)也可以完成中序遍历,这种方式在这篇文章中已经讨论过。这里着重讨论使用栈的实现方式。中序遍历(1) 双while,第二个内层while是为了不断压入lef...
分类:
其他好文 时间:
2014-12-08 02:03:20
阅读次数:
233
二叉树的前序建立递归算法以及前中后序遍历的递归算法已经是人尽皆知了,递归算法也确实为代码的编写带来了很大的方便。然而,有时我们也确实需要它们的非递归算法。将递归算法转化为非递归算法可以帮助我们深入了解函数的调用与栈的原理。这里总结一下二叉树的这些重要的非递归算法。...
分类:
编程语言 时间:
2014-12-07 12:39:23
阅读次数:
210