不积跬步,无以至千里


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

多叉树的宽度优先搜索BFS

发表于 2012-06-01 | 分类于 数据结构与算法 | | 阅读次数:

首先,选择一个合适的数据结构存储多叉树,我使用了“左孩子右兄弟”的方法,使用二叉树来存储多叉树,便于实现和遍历。
其次,宽度优先搜索时:

  1. 用队列(先进先出)保存遍历路径。
  2. 搜索顺序:对节点A,先访问节点的左节点(第一个孩子节点),从该左节点开始一直向右遍历直到最右叶子节点(所有兄弟节点),此时遍历完A的所有直接孩子。遍历的同时,节点入队列。
  3. 遍历完A的孩子后,取队列中的下一个节点,继续遍历其孩子节点。直到队列为空。
阅读全文 »

最大公因子-辗转相除法

发表于 2012-06-01 | 分类于 数据结构与算法 | | 阅读次数:

求两个数的最大公因子,使用“辗转相除法”。

原理

若r=a%b,则gcd(a,b)=gcd(b,r)。

推导

因为r=a%b,所以a=bq+r,r=a-bq。
a=bq+r,能被b,r整除的,则一定能被a整除,自然也能被a,b整除
r=a-bq,能被a,b整除的,则一定可以被r整除,自然也能被b,r整除
显然gcd(a,b)=gcd(b,r)。

阅读全文 »

求二叉树中两节点的最小公共父节点

发表于 2012-06-01 | 分类于 数据结构与算法 | | 阅读次数:

165646729

思路:

采用递归,深度优先遍历,找到一个节点时,返回,逐层记录遍历方向,另一个节点
同,这样深度优先遍历后,可以找到这两个节点由根节点访问的路径,然后沿着这个
路径找到分叉的地方就行了。

阅读全文 »

Huffman编码

发表于 2012-06-01 | 分类于 数据结构与算法 | | 阅读次数:

编码字符:”w”,”o”,”r”,”l”,”d”,权重值4,2,1,5,7。

阅读全文 »

树的宽度优先遍历

发表于 2012-05-31 | 分类于 数据结构与算法 | | 阅读次数:

221755670

阅读全文 »

快速排序和堆排序

发表于 2012-05-31 | 分类于 数据结构与算法 | | 阅读次数:

快速排序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream> 
using namespace std;

int n[5] = {4,3,1,5,2};
void quickSort(int s, int t);
int sort(int s, int t);

int main()
{
quickSort(0,4);
for (int i=0;i<5;i++) cout<<n[i];
return 0;
}

void quickSort(int s, int t)
{
if(s>=t) return;
int k = sort(s, t);
quickSort(s,k-1);
quickSort(k+1,t);
return;
}

int sort(int s, int t)
{
int key = n[s];
while(s<t)
{
while(n[t]>=key&&t>s) t--;
n[s] = n[t];
s++;
while(n[s]<=key&&t>s) s++;
n[t] = n[s];
t--;
}
n[s] = key;
return s;
}

阅读全文 »

二叉树先序遍历非递归算法

发表于 2012-05-31 | 分类于 数据结构与算法 | | 阅读次数:

192446566

阅读全文 »

单链表之:如何快速找到倒数第n个节点

发表于 2011-01-05 | 分类于 数据结构与算法 | | 阅读次数:

题目:如何查找单链表的倒数第n个指针。
算法一:第一次遍历到链表末尾,找到链表长度N;第二遍遍历,找到第N-n个节点。
算法二:设立两个指针,p1指向头节点,p2往前走n步,这样,p2与p1之间间隔n个指针。这样,当p2到达末尾是,p1则为倒数第N-n个节点。

阅读全文 »

数组循环移位

发表于 2010-12-31 | 分类于 数据结构与算法 | | 阅读次数:

题目:给定数组str[],循环左移m位。即如果str=”ABCDEF”,循环左移2位得到 “CDEFAB”。
算法:使用两个倒序,倒序AB得到BA,倒序CDEF得到FEDC,最后全部BAFEDC全部倒序CDEFAB。

阅读全文 »

1…89
magicwt

magicwt

89 日志
9 分类
49 标签
GitHub E-Mail
© 2018 magicwt
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4