算法概述图的遍历是指访问图中每个节点一次。图的遍历方式主要有两种,一种是深度优先,即能走多远就先走多远的遍历方式,这就意味着,对于每个节点的遍历完后,下一个访问的节点应该是他的邻接点,而不是兄弟节点。另一种方式是深度优先的方式,这是一种分层遍历,对于没一个节点访问完后,就访问它的兄弟节点,而不是优先考虑邻接顶点。深度优先算法使用递归实现比较直观,而广度优先遍历则需要一个栈辅助,和分层遍历一棵二叉树的...
分类:
其他好文 时间:
2015-05-30 12:16:38
阅读次数:
206
二叉查找树性质设x是二叉查找树中的一个结点,如果y是x的左子树中的一个结点,则k[y]=k[x]1 //中序遍历算法,输出二叉查找树T中的全部元素2 INORDER-TREE-WALK(x)3 if x!=nil4 then INORDER-TREE-WALK(left[x])5 ...
分类:
编程语言 时间:
2015-05-26 22:59:04
阅读次数:
114
#include
#include
using namespace std;
struct treeNode
{
int value;
treeNode* left;
treeNode* right;
treeNode* parent;
};//节点结构
void insert(treeNode **root,int value)
{
treeNode* ...
分类:
其他好文 时间:
2015-05-12 09:36:45
阅读次数:
121
二叉树是树(Tree)这一数据结构中非常重要的子类,其中每一个节点最多存在两个子节点,在代码中表示就是,除了本身的 Data 值,还会带有 Left 和 Right 子节点。如下图所示,用形如图中的结构构成了整棵树。任何一种数据结构,都会存在遍历的顺序问题,比如链表,堆栈等等;二叉树这种数据结构也有...
分类:
编程语言 时间:
2015-05-10 23:52:12
阅读次数:
156
图的遍历图的遍历(Traversing Graph):从图的某一顶点出发,访遍图中的其余顶点,且每个顶点仅被访问一次。
图的遍历算法是各种图的操作的基础。但图的遍历存在以下特点:
◆ 复杂性:图的任意顶点可能和其余的顶点相邻接,可能在访问了某个顶点后,沿某条路径搜索后又回到原顶点,而有些顶点却还没有被遍历到的情况。
◆ 解决办法:在遍历过程中记下已被访问过的顶点。设置一个辅助向量V...
分类:
其他好文 时间:
2015-05-01 09:26:10
阅读次数:
143
/*二叉树的遍历*/
#include
#include
#include
using namespace std;
typedef struct node
{
char data;
struct node *lchild,*rchild;
}BinTree;
typedef struct node1
{
BinTree *btnode;
bool is...
分类:
编程语言 时间:
2015-04-29 09:56:04
阅读次数:
147
二叉树的遍历是指从根结点开始,按照某种次序依次访问二叉树中的所有结点,每个结点只能被访问一次。
遍历的意义在于把树中的结点变成某种有意义的线性序列。
前序遍历:
算法思想:
二叉树为空,则操作返回
不为空,则
? 访问结点数据,并打印出来
? 先序遍历左子树
? 后序遍历右子树
实现代码:
void pre_order_...
分类:
其他好文 时间:
2015-04-25 18:27:29
阅读次数:
195
题目:
能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的数字。
解法一:
穷举法,从数组中任意取出两个数字。计算两者之和是否为给定的数字。其时间复杂度为N(N-1)/2,即O(N2).
解法二:
解法三:
直接对两个数字的和进行一个有序的遍历,从而降低算法的时间复杂度。
首先对数组进行排序,时间...
分类:
其他好文 时间:
2015-04-23 09:44:23
阅读次数:
120
本文利用邻接表的方法将图进行了表示,并且利用广度优先遍历方法对图进行遍历
下面是一个图的示例:
代码如下:
#include
using namespace std;
typedef int VexType;
typedef struct Arcnode{
VexType data;
struct Arcnode *nextarc;
}ArcNode;
typedef...
分类:
编程语言 时间:
2015-04-16 21:59:52
阅读次数:
186
problem:
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
Hid...
分类:
其他好文 时间:
2015-04-13 19:03:50
阅读次数:
143