树1.树的优点有序数组: 查找很快,二分法实现的查找所需要的时间为O(logN),遍历也很快,但是在有序数组中插入,删除却需要先 找到位置, 在把数组部分元素后移,效率并不高。链表: 链表的插入和删除都是很快速的,仅仅需要改变下引用值就行了,时间仅为O(1),但是在链表中查找数据却需要遍历所有的元素 ...
分类:
编程语言 时间:
2017-03-19 01:01:04
阅读次数:
180
简述 二叉树的遍历分为先序遍历、中序遍历和后序遍历。如下图所示: 递归遍历 递归遍历实现比较简单,递归利用函数栈来保存信息。 非递归遍历 非递归需要额外 先序遍历: 1.申请一个栈 stack。然后将头结点head压入 stack 中。 2.从 stack 中弹出栈顶结点,记为 cur,然后打印 c ...
分类:
其他好文 时间:
2017-03-17 23:33:45
阅读次数:
165
1. 引言 在实际的项目中,树还是用的比较多的一种,尤其是对于具有层次结构的数据。相信很多人都学过树的遍历,比如先序遍历,后序遍历等,利用递归还是很容易理解的。 今天给大家介绍下二叉树的几种遍历算法,包括递归和非递归的实现。 首先建立一棵二叉树 如: [DebuggerDisplay("Value= ...
分类:
编程语言 时间:
2017-03-16 18:28:04
阅读次数:
227
void solve(int start,int end,int root) { // 前序和中序 -> 后序 // 每次调用solve()函数,传入pre-order的start,end,root if (start > end) // 递归边界 return; int i = start; wh... ...
分类:
其他好文 时间:
2017-03-12 21:23:57
阅读次数:
173
public class Tree { private TreeNode root = null; public Tree() { root = new TreeNode(1, "A"); } private class TreeNode { private int key; private St.... ...
分类:
编程语言 时间:
2017-03-11 23:39:39
阅读次数:
220
输入一系列整数,建立二叉排序树,并进行先、中、后序遍历 代码: ...
分类:
编程语言 时间:
2017-03-11 21:38:13
阅读次数:
184
好不容易又到周五了,周末终于可以休息休息了。写这一篇随笔只是心血来潮,下午问了一位朋友PAT考的如何,顺便看一下他考的试题,里面有最后一道题,是关于给出中序遍历和后序遍历然后求一个层次遍历。等等,我找一下链接出来...... 1127. ZigZagging on a Tree (30):https ...
分类:
编程语言 时间:
2017-03-11 00:44:30
阅读次数:
229
转自:http://www.cnblogs.com/fzhe/archive/2013/01/07/2849040.html 今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我 ...
分类:
其他好文 时间:
2017-03-05 23:06:20
阅读次数:
283
根据中序遍历和前序遍历确定一棵二叉树,然后按“层次遍历”序列输出。输出规则:除根节点外,接下来每层的节点输出顺序是:先从左到右,再从右到左,交替输出 #include <iostream> #include <cstdio> #include <algorithm> #include <string ...
分类:
其他好文 时间:
2017-03-05 21:14:53
阅读次数:
209
package com.m01.program.maven_1; import java.util.Stack; public class TestBinaryTree { public static void main(String[] args) { TreeNode node=getBinar... ...
分类:
其他好文 时间:
2017-03-05 00:11:06
阅读次数:
167