- 博客(5)
- 收藏
- 关注
原创 图的广度优先遍历(邻接矩阵)
广度优先遍历是连通图的一种遍历策略。其基本思想如下:1、从图中某个顶点V0出发,并访问此顶点;2、从V0出发,访问V0的各个未曾访问的邻接点W1,W2,…,Wk;然后,依次从W1,W2,…,Wk出发访问各自未被访问的邻接点;3、重复步骤2,直到全部顶点都被访问为止。例如下图中: 1.从A开始,首先找到A的关联顶点D,E2.由D出发,找到B,C;由E出发,找到A,但是A已经遍历过,所以忽略。3.由B
2015-11-15 18:58:00 1507
原创 马踏棋盘算法
马踏棋盘问题(又称骑士周游或骑士漫游问题)是算法设计的经典问题之一 算法牵涉 深度优先搜索与回溯法 回溯法:一条路走到天黑,碰壁后退回上一步改变一次方向,如果还是碰壁或者下一格已经走过那么再次退回上一步。 源代码如下:#include<stdio.h>#include<time.h>define X 8define Y 8int chess[X][Y]; //定义棋盘
2015-11-01 16:04:57 702
原创 线索二叉树
二叉树的遍历本质上是将一个复杂的非线性结构转换为线性结构,使每个结点都有了唯一前驱和后继(第一个结点无前驱,最后一个结点无后继)。对于二叉树的一个结点,查找其左右子女是方便的,其前驱后继只有在遍历中得到。为了容易找到前驱和后继,有两种方法。一是在结点结构中增加向前和向后的指针fwd和bkd,这种方法增加了存储开销,不可取;二是利用二叉树的空链指针。现将二叉树的结点结构重新定义如下:lchild
2015-10-24 18:24:57 316
原创 中缀表达式转换为后缀表达式
第一篇文章写了逆波兰表达式,如果运算过程很复杂又要人为的去把中缀表达式转换为后缀表达式,就容易出错,现在我们又可以利用栈的思想把中缀表达式转换为后缀表达式。 具体思想为:1、遇到数字就打印出来 2、遇到运算符就进栈 但是遇到右括号就把栈里面左括号之前的运算符全部出栈,分情况讨论 :《1》遇到+或者-号 如果栈空或者栈顶元素为左括号则进栈,否则栈顶元素先出栈再把+ 或- 入栈。《2》遇到或
2015-10-17 16:22:36 424
原创 逆波兰表达式
源代码includeincludeincludedefine Stack_init_size 100define Stackincrease 10define MaxBuffer 10typedef int status; typedef double elemtype; typedef struct { elemtype *base;
2015-10-10 11:17:52 288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人