二叉树的最低公共祖先 代码(C)本文地址: http://blog.csdn.net/caroline_wendy二叉树的最低公共祖先(lowerest common ancestor), 首先先序遍历找到两个结点的路径, 然后根据链表路径找到最低的公共祖先.代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Author: Spike...
分类:
其他好文 时间:
2014-09-18 16:36:04
阅读次数:
162
递归实现: 其实代码看似蛮简单的: 1 //先序遍历. 2 void 3 traverse(PNode p) { 4 if(!p) 5 return; 6 visit(p); //访问根结点. 7 if(p->lchild) 8 tra...
分类:
其他好文 时间:
2014-09-18 13:10:53
阅读次数:
241
先序遍历:
void preOrder(Node *p) //非递归
{
if(!p) return;
stack s;
Node *t;
s.push(p);
while(!s.empty())
{
t=s.top();
printf("%d\n",t->data);
s.pop();
if(t->ri...
分类:
其他好文 时间:
2014-09-15 19:36:09
阅读次数:
152
说说:
这道题非常简单,本质上就是二叉树的先序遍历。只需要建立一个数组,然后将初始位置放在数组中心。然后进入左子树的根节点,向数组左侧移动一位,添加当前节点所含的值,同理进入右子树的根节点,向数组右侧移动一位,添加当前节点所含的值。并标记好到达过的数组的左右边界,最后将边界内数组的值输出即可。
源代码:
#include
#include
#define MAXN 200
int pi...
分类:
其他好文 时间:
2014-09-09 21:34:09
阅读次数:
330
普通二叉树的序列化和反序列化:先序遍历,null节点用特殊符号标记。import java.io.File;import java.io.FileNotFoundException;import java.io.PrintStream;import java.util.Scanner;public ...
分类:
其他好文 时间:
2014-09-09 21:18:19
阅读次数:
221
#region二叉树的先序遍历2///3///二叉树的先序遍历4///5///6///7publicvoidBinTree_DLR(ChainTree tree)8 {9if(tree ==null)10return;1112//先输出根元素13 Console.Write(tree.data +"...
分类:
其他好文 时间:
2014-09-04 16:22:49
阅读次数:
261
今天说说递归思想,在我们编码时,有的时候递归能够让我们的算法更加通俗易懂,并且代码量也是大大的减少。比如我先前的系列中说到了关于树的“先序,中序和后序”遍历,那么看看用递归来描叙这个问题是多少的简洁,多么的轻松。 1 #region 二叉树的先序遍历 2 /// 3 /// ...
分类:
其他好文 时间:
2014-08-30 11:10:19
阅读次数:
245
遍历二叉树
二叉树是一种非线性的数据结构。所谓的遍历二叉树就是按某种顺序访问二叉树中的每个节点,要求每个节点被访问一次且仅一次。
遍历操作实际上是将非线性结构线性化过程,其结果为线性序列。
二叉树的操作
(1)先序遍历---结束的条件是二叉树是否为空 TLR
先访问根节点;
再先序访问左子树;
再先序访问右子树。
(2)中序遍历---结束的条件是二叉树是否为...
分类:
其他好文 时间:
2014-08-29 18:24:18
阅读次数:
154
思想:先序遍历。注意的是: 当只有一个孩子结点时,深度是此孩子结点深度加 1 .
思想: 先序遍历。既要返回左右子树判断的结果,又要返回左右子树的深度进行再判断。
所以要么返回一个 pair, 要么函数参数增加一个引用来传递返回值。
分类:
其他好文 时间:
2014-08-27 18:25:08
阅读次数:
207
思想: 先序遍历。若当前结点为空,返回 false; 不为空,则加上其值,若为叶子结点,则判断一次。
注意: 非路径和, 而是到叶子结点的路径和。例如: {1, 2} 1 返回: false
思路同上: 只是要记下路径。
分类:
其他好文 时间:
2014-08-27 18:05:28
阅读次数:
202