我在前面的博客中讲解了链表、栈和队列,这些数据结构其实都是线性表,并且给出了详细的实现。从今天开始,我们将要来学习树,树作为一种数据结构我们经常会用到,作为起步和基础,我们先来实现二叉树,也就是每个节点有不超过2个子节点的树。对于树的操作,最基本的创建、遍历、求树高、节点数等。代码上传至 https://github.com/chenyufeng1991/BinaryTree 。(1)节点的定义t...
分类:
编程语言 时间:
2016-03-12 00:11:11
阅读次数:
312
//已知二叉树的先序,中序遍历,求后续遍历struct TreeNode{ char elem; struct TreeNode* left; struct TreeNode* right;};TreeNode* BinaryTree(char* inorder,char* pre...
分类:
其他好文 时间:
2015-11-28 13:33:45
阅读次数:
182
//递归中序遍历publicvoidinorder(){System.out.print("binaryTree递归中序遍历:");inorderTraverseRecursion(root);System.out.println();}//层次遍历publicvoidlayerorder(){Sy...
分类:
编程语言 时间:
2015-10-28 19:17:53
阅读次数:
204
方法一算法思想:用后序遍历的方式遍历二叉树的每一个结点,在遍历到一个结点之前我们已经遍历了它的左右子树,只要在遍历每个结点的时候记录下它的高度,我们就可以一边遍历一边判断每个结点是不是平衡的。代码如下: 1 typedef struct BinaryTree 2 { 3 int data; ...
分类:
其他好文 时间:
2015-10-08 21:29:58
阅读次数:
261
算法思想:由于二叉排序树的中序遍历可以得到一个有序的序列,因此,我们可以使用中序遍历进行求解。代码如下: 1 #include 2 using namespace std; 3 4 typedef struct BinaryTree 5 { 6 int data; 7 Binar...
分类:
编程语言 时间:
2015-10-08 18:01:02
阅读次数:
242
BinaryTreeNode.h//// BinaryTreeNode.h// BinaryTree//// Created by KeSen on 15/9/7.// Copyright (c) 2015年 KeSen. All rights reserved.//#import @cla...
分类:
其他好文 时间:
2015-09-07 12:35:07
阅读次数:
180
平衡二叉树public class BinaryTree { public Node root; /** * 内部类实现结点类,可提高安全性 * */ static class Node{ int data; Node ...
分类:
其他好文 时间:
2015-08-20 14:52:31
阅读次数:
137
【仅贴代码及测试结果】-------------------BinaryTree.java------------------------------class Tree{ E element; Tree lChild; Tree rChild; public Tree(E ...
分类:
编程语言 时间:
2015-08-18 15:32:58
阅读次数:
119
Binary Tree PathsGiven a binary tree, return all root-to-leaf paths.For example, given the following binary tree:
All root-to-leaf paths are:[“1->2->5”, “1->3”]分析
深度搜索class Solution {
public:
v...
分类:
其他好文 时间:
2015-08-17 17:25:01
阅读次数:
149
二叉树,结构很简单,只是比单链表复杂了那么一丢丢而已。我们先来看看它们结点上的差异:/* 单链表的结构 */struct SingleList{ int element; struct SingleList *next;};/* 二叉树的结构 */struct BinaryTree{...
分类:
编程语言 时间:
2015-08-14 13:40:21
阅读次数:
160