Marshall的专栏

一旦把问题想清楚,代码是水到渠成的事,所以首先是思考,思考,思考

八皇后问题

在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。试解出92种结果。 // eight_queen.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #incl...

2015-07-29 02:01:13

阅读数:1467

评论数:1

马的遍历问题

在10*9的中国象棋的棋盘中,马只能走“日”字,不考虑蹩脚。马从任意位置处出发,把棋盘的每一格都走一次,且只走一次,设计程序求解。 #include #include using namespace std; typedef unsigned char BYTE; //#define Wid...

2015-07-28 01:01:34

阅读数:1991

评论数:0

字典树

字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 它有3个基本性...

2015-07-24 23:36:19

阅读数:805

评论数:0

二叉排序树的插入与删除

二叉排序树的插入与删除可能会破坏二叉排序树的性质,现在要求插入和删除操作保持其性质 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分...

2015-07-21 10:31:03

阅读数:1493

评论数:0

判别二叉树是否为二叉排序树

设二叉树用二叉链表表示,且每个结点的键值互不相同,请编写判别该二叉树是否为二叉排序树的非递归算法。 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3...

2015-07-19 22:25:25

阅读数:1991

评论数:0

判断无向图G是否连通

判断无向图G是否连通 #include "stdafx.h" #include #include using namespace std; #define N 9 typedef struct{ int vexnum, arcnum; char vexs[N]; i...

2015-07-19 21:50:52

阅读数:2203

评论数:0

图的深度优先搜索与广度优先搜索

无向图的深度优先搜索与广度优先搜索 #include "stdafx.h" #include #include using namespace std; #define N 9 typedef struct{ int vexnum, arcnum; char vex...

2015-07-19 14:08:28

阅读数:1047

评论数:0

整数变换问题

整数变换问题 问题描述: 关于整数i的变换f和g定义如下:f(i)=3i;g(i)=i/2。 现要求对于给定的2个整数n和m,用最少的f和g变换次数将n变换为m。 例如,可以将整数15用4次变换将它变换为整数4:4=gfgg(15)。当整数n不可能变换为整数m时,算法应如何处理?这里假定每个问题都...

2015-07-18 11:54:03

阅读数:3156

评论数:0

按层次遍历二叉树

编写按层次顺序(同一层自左至右)遍历二叉树的算法。 #include "stdafx.h" #include #include using namespace std; struct BiNOde { int ele; BiNOde* lnode; ...

2015-07-16 22:29:56

阅读数:2580

评论数:0

交叉链表

两个单向链表,找出它们的第一个公共结点。链表的结点定义为: struct ListNode {     int  m_nKey;           ListNode*   m_pNext; }; #include "stdafx.h" #include #includ...

2015-07-16 18:49:34

阅读数:798

评论数:0

二元查找树转换成一个排序的双向链表

输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 最直观的一种思路就是每次从二分查找树中找到最小的数,加到链表中 // BST2list.cpp : 定义控制台应用程序的入口点。 // #include "stdafx....

2015-07-15 23:50:38

阅读数:1019

评论数:0

简单计算器的实现

计算器 问题描述: 输入一个简单四则运算表达式字符串,计算该表达式的值  注:  1、表达式只含 +, -, *, /, (, ), 四则运算符  2、表达式数值只包含整数(0-9),每个操作数可以是多位,且不会出现0作为除数的情况  3、要考虑加减乘除按通常四则运算规定的计算优先级  4、除...

2015-07-15 15:16:13

阅读数:1274

评论数:0

二叉树宽度的计算

二叉树的宽度定义为具有最多结点数的层中包含的结点数,试计算一二叉树的深度。 #include "stdafx.h" #include #include using namespace std; struct BiNOde { int ele; BiNOde*...

2015-07-15 04:31:20

阅读数:1185

评论数:0

BMP文件的读取与显示

1.StretchDIBits函数实现 完成功能: 对话框程序,添加一个按钮,点击按钮后显示图片 (1)设置BYTE*m_pBmpData为类的成员变量,我们要把图片的RGB数据装进去。 (2)按钮的后台代码 void Cbmp_readDlg::OnBnClickedShowbmp(...

2015-07-14 13:39:02

阅读数:3472

评论数:0

约瑟夫环问题

约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。求剩下最后的一个人的编号。 #include "s...

2015-07-13 13:38:34

阅读数:932

评论数:0

单词统计

单词统计 题目描述:   输入一段英文文本,用程序统计出现频率最高和最低的两个单词;  英文文本中仅出现这四类字符:空格( )、英文逗号(,)、英文句号(.)、英文大小写字母(a-z、A-Z)  单词之间的分隔符仅考虑这三种:空格( )、英文逗号(,)、英文句号(.); 仅大小写不同的单词算同一个...

2015-07-12 13:45:52

阅读数:816

评论数:0

字符串操作

字符串反转 #include "stdafx.h" #include using namespace std; char*reverse_str(char*str); int _tmain(int argc, _TCHAR* argv[]) { char*str = &...

2015-07-12 12:12:52

阅读数:1111

评论数:0

关于strncpy函数

转自:http://www.cnblogs.com/unimous/archive/2012/03/05/2381151.html C/C++中的strncpy()函数功能为将第source串的前n个字符拷贝到destination串,原型为: char * strncpy ( cha...

2015-07-11 21:36:59

阅读数:459

评论数:0

KMP字符串匹配算法的原理与实现

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。 KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。即确定下一次应该从那个位置重新...

2015-07-10 21:12:07

阅读数:1462

评论数:0

判断二叉树是不是平衡二叉树

输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。例如下图中的二叉树就是一棵平衡二叉树:

2015-07-08 23:02:07

阅读数:718

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭