递归算法
void preorder1(Node *root) //递归前序遍历
{
if (root == NULL) return;
printf("%d ", root->val);
preorder1(root->left);
preorder1(root->right);
}
void inorder1(Node *root) //递归中序遍历
{
if (root == ...
分类:
其他好文 时间:
2015-08-29 17:04:03
阅读次数:
151
输入一颗二叉树,你的任务是从上到下,从左到右的顺序输出各个节点的值。每个节点都按照从根节点到它的移动序列给出(L,表示做,R表示右)。在输入中,每个节点的左括号和右括号之间没有空格,相邻节点之间用一个空格隔开。每棵树的输入用一对空括号“()”结束。
注意: 如果从根到某个节点的路径上有的节点没有在输入中给出,或者给出超过1次,应当输出 not complete ,节点个数不超过256....
分类:
其他好文 时间:
2015-08-29 11:15:14
阅读次数:
150
Queueq;
voidLevelOrder(PtrToNodeT)
{
if(T==NULL)
return;
printf("%c\n",T->Element);
if(T->Left!=NULL)
Enqueue(T->Left,q);
if(T->Right!=NULL)
Enqueue(T->Right,q);
PtrToNodep;
while(!IsEmpty(q))
{
p=Dequeue(q);
LevelOrder(p);
}
}
分类:
其他好文 时间:
2015-08-19 21:08:31
阅读次数:
135
一:前言二叉树的遍历方法分四种:前序,中序,后序以及层次遍历。其中,前中后遍历方法的实现分递归和非递归,非递归遍历的实现需要借助于栈。实际上,递归的调用就是一种栈的实现,所以,非递归遍历就需要人工借助栈结构来实现。而层次遍历需要借助队列。二:前中后序遍历递归遍历:递归遍历的思想和方法很简单,通过调整...
分类:
编程语言 时间:
2015-08-11 00:03:14
阅读次数:
232
图的遍历方法有两种:1深度优先该算法类似于树的先根遍历;2广度优先该算法类似树的层次遍历;事例:深度优先遍历顺序为:V1–V2–V4–V8–V5–V3–V6–V7广度优先遍历顺序为:V1–V2–V3–V4–V5–V6–V7–V83注意事项1)一个图,它的深度优先和广度优先是不唯一的,可以有..
分类:
编程语言 时间:
2015-08-09 19:06:21
阅读次数:
156
题目链接:
HDu5335
题意:
1000X1000的地图, 问通过四个方向从(1,1)走到(1000,1000)所经过的最小二进制序列是多少.
解题思路:
首先应该通过bfs找到 (1,1)能走到的值为0且最接近右下角的位置 (x+y值最大 ,有多个全部保存)
这样就能保证接下来找的序列是最短的
接下来每一步的...
分类:
其他好文 时间:
2015-07-30 21:24:44
阅读次数:
485
测试环境:windows 7 vs2010
主要实现二叉树的初始化递归和非递归遍历,层次遍历,获取叶子节点的个数,获取树的高度以及镜像树,部分代码也参考了互联网上的相关资料。
源程序:
BinaryTreeNode.h
#ifndef _BINARY_NODE
#define _BINARY_NODE
#include
using namespace std;
template
st...
分类:
编程语言 时间:
2015-07-28 21:11:12
阅读次数:
130
Tree Traversal树的遍历方式有前序、中序和后序(DFS),以及层次遍历(BFS)。1.递归;2.非递归,辅助栈。实现方式见:http://www.cnblogs.com/harrygogo/p/4599097.html
分类:
其他好文 时间:
2015-07-28 12:36:23
阅读次数:
109
1.题目描述:点击打开链接
2.解题思路:本题是一道找规律的数学题,通过题意描述不难知道,相当于有5棵二叉树构成了一个森林,需要你按层次遍历找到第n个人是谁。观察后不难发现,假设最开始的一层为第0层,序号n所在层为l,那么0~l-1层之间有5*(2^l-1)个结点,令5*(2^l-1)=n,计算得,l=log(n/5+1)/log(2)。由于第l-1层最后一个人的序号是ed=5*(2^l-1),...
分类:
其他好文 时间:
2015-07-27 16:27:24
阅读次数:
125
这几天在复习关于树的各种算法,做了一些题,也搜索了网上各种算法,现在来总结一下树的各种常见算法。本文涵盖:二叉树先中后序遍历(递归&非递归)算法层次遍历(正序&逆序&锯齿形)非递归算法二叉树深度算法结点总数算法1.二叉树先序非递归遍历//先序非递归遍历 public ArrayList pre...
分类:
编程语言 时间:
2015-07-23 23:16:59
阅读次数:
253