07 2015 档案

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

posted @ 2015-07-29 02:01 moffis 阅读(179) 评论(0) 推荐(0)

马的遍历问题
摘要:在10*9的中国象棋的棋盘中,马只能走“日”字,不考虑蹩脚。马从任意位置处出发,把棋盘的每一格都走一次,且只走一次,设计程序求解。// horse_traverse.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing name... 阅读全文

posted @ 2015-07-28 01:01 moffis 阅读(611) 评论(0) 推荐(0)

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

posted @ 2015-07-24 23:36 moffis 阅读(199) 评论(0) 推荐(0)

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

posted @ 2015-07-21 10:31 moffis 阅读(490) 评论(0) 推荐(0)

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

posted @ 2015-07-19 22:25 moffis 阅读(1249) 评论(0) 推荐(0)

判断无向图G是否连通
摘要:判断无向图G是否连通#include "stdafx.h"#include#includeusing namespace std;#define N 9 typedef struct{ int vexnum, arcnum; char vexs[N]; int matirx[N][N];}grap... 阅读全文

posted @ 2015-07-19 21:50 moffis 阅读(728) 评论(0) 推荐(0)

图的深度优先搜索与广度优先搜索
摘要:无向图的深度优先搜索与广度优先搜索#include "stdafx.h"#include#includeusing namespace std;#define N 9typedef struct{ int vexnum, arcnum; char vexs[N]; int matirx[N][N];... 阅读全文

posted @ 2015-07-19 14:08 moffis 阅读(189) 评论(0) 推荐(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时,算法应如何处理?这里假定每个问题都有解。输入... 阅读全文

posted @ 2015-07-18 11:54 moffis 阅读(815) 评论(0) 推荐(0)

按层次遍历二叉树
摘要:编写按层次顺序(同一层自左至右)遍历二叉树的算法。#include "stdafx.h"#include #include using namespace std;struct BiNOde{ int ele; BiNOde* lnode; BiNOde* rnode;};vector>aa... 阅读全文

posted @ 2015-07-16 22:29 moffis 阅读(451) 评论(0) 推荐(0)

交叉链表
摘要:两个单向链表,找出它们的第一个公共结点。链表的结点定义为:struct ListNode{ int m_nKey; ListNode* m_pNext;};#include "stdafx.h"#include#includeusing namespace std;struct List... 阅读全文

posted @ 2015-07-16 18:49 moffis 阅读(497) 评论(0) 推荐(0)

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

posted @ 2015-07-15 23:50 moffis 阅读(227) 评论(0) 推荐(0)

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

posted @ 2015-07-15 15:16 moffis 阅读(198) 评论(0) 推荐(0)

二叉树宽度的计算
摘要:二叉树的宽度定义为具有最多结点数的层中包含的结点数,试计算一二叉树的宽度。#include "stdafx.h"#include #includeusing namespace std;struct BiNOde{ int ele; BiNOde* lnode; BiNOde* rnode;};v... 阅读全文

posted @ 2015-07-15 04:31 moffis 阅读(413) 评论(0) 推荐(0)

BMP文件的读取与显示
摘要:有三个函数可以完成这一功能1.BitBlt BitBlt 用于从原设备中复制位图到目标设备void CMFCApplication1View::OnDraw(CDC* pDC){ CMFCApplication1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc... 阅读全文

posted @ 2015-07-14 13:39 moffis 阅读(893) 评论(0) 推荐(0)

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

posted @ 2015-07-13 13:38 moffis 阅读(169) 评论(0) 推荐(0)

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

posted @ 2015-07-12 13:45 moffis 阅读(201) 评论(0) 推荐(0)

字符串操作
摘要:字符串反转#include "stdafx.h"#includeusing namespace std;char*reverse_str(char*str);int _tmain(int argc, _TCHAR* argv[]){ char*str = "abcdefgh"; char*dst =... 阅读全文

posted @ 2015-07-12 12:12 moffis 阅读(178) 评论(0) 推荐(0)

关于strncpy函数
摘要:转自:http://www.cnblogs.com/unimous/archive/2012/03/05/2381151.htmlC/C++中的strncpy()函数功能为将第source串的前n个字符拷贝到destination串,原型为:char * strncpy ( char * desti... 阅读全文

posted @ 2015-07-11 21:36 moffis 阅读(322) 评论(0) 推荐(0)

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

posted @ 2015-07-10 21:12 moffis 阅读(160) 评论(0) 推荐(0)

判断二叉树是不是平衡二叉树
摘要:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。例如下图中的二叉树就是一棵平衡二叉树:// IsbalenceTree.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#... 阅读全文

posted @ 2015-07-08 23:02 moffis 阅读(238) 评论(0) 推荐(0)

根据输入字符建树
摘要:根据给出的字符串建树如a(b(c,d),e(f,g))a为根节点,b,e分别为a的左右孩子....// build_tree.cpp : 定义控制台应用程序的入口点。///*根据给出的字符串建树如a(b(c,d),e(f,g))a为根节点,b,e分别为a的左右孩子....*/#include "st... 阅读全文

posted @ 2015-07-08 17:52 moffis 阅读(300) 评论(0) 推荐(0)

判断IP地址是否有效
摘要:IP的有效值是1.0.0.1~255.255.255.255,写个程序,参数是一个char*的IP,返回这个IP是否有效。// IPcheck.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;//IP的有效值是... 阅读全文

posted @ 2015-07-07 23:45 moffis 阅读(1339) 评论(0) 推荐(1)

二分查找算法
摘要:二分查找又称折半查找算法基本思想首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,... 阅读全文

posted @ 2015-07-07 23:28 moffis 阅读(211) 评论(0) 推荐(0)

链表排序、链表删除、访问倒数第k个节点
摘要:1.设一个带头结点的单向链表的头指针为head,设计算法,将链表的记录,按照data域的值递增排序。2.已知线性表中的元素以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。3.输出该链表中倒数第k个结点, tail为倒数第0个节点//#i... 阅读全文

posted @ 2015-07-07 13:12 moffis 阅读(256) 评论(0) 推荐(0)

超级台阶
摘要:描述有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法。输入输入数据首先包含一个整数n(1using namespace std;int Go_up(int m);int _tmain(int argc, _TCHAR* argv... 阅读全文

posted @ 2015-07-06 22:36 moffis 阅读(168) 评论(0) 推荐(0)

大数阶乘
摘要:描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0#include#includeusing namespace std;dequere, t1, t2;void GreatNumFactorial(int num);void multi(... 阅读全文

posted @ 2015-07-05 09:18 moffis 阅读(178) 评论(0) 推荐(0)

括号配对问题
摘要:描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0#includeusing namespace std;bool bracketmatch(char*in);int _tmain(int argc, _TCHAR* argv[]){ char*a = "[(]([[](... 阅读全文

posted @ 2015-07-04 19:40 moffis 阅读(110) 评论(0) 推荐(0)

求子数组的最大和
摘要:题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的... 阅读全文

posted @ 2015-07-04 13:02 moffis 阅读(163) 评论(0) 推荐(0)

STL学习之stack
摘要:栈是一种容器适配器,是一种后入先出(LIFO )队列。基本操作stacks;构造stacks1(s2);将s2赋值给s1s.push(x);入栈s.pop();出栈,注意:出栈操作只是删除栈顶的元素,并不返回该元素s.top();访问栈顶s.empty().判断栈空,当栈空时返回trues.size... 阅读全文

posted @ 2015-07-04 10:34 moffis 阅读(215) 评论(0) 推荐(0)

动态规划之求序列里最长的非降序列
摘要:求序列里最长的非降序列例如:输入:{5,3,4,8,6,7}输出:4 即{3,4,6,7}// maxnodecrease.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;vectormaxno... 阅读全文

posted @ 2015-07-03 21:07 moffis 阅读(244) 评论(0) 推荐(0)

数组交换
摘要:有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。例如: var a=[100,99,98,1,2, 3];var b=[1, 2, 3, 4,5,40];// exchange_array.cpp : 定义... 阅读全文

posted @ 2015-07-03 11:56 moffis 阅读(206) 评论(0) 推荐(0)

如何将两个有序的一维数组合并为一个有序的一维数组合
摘要:如何将两个有序的一维数组合并为一个有序的一维数组合// merge_array.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;void myinsert(list&pp, int num);i... 阅读全文

posted @ 2015-07-02 22:31 moffis 阅读(906) 评论(0) 推荐(0)

STL学习之deque
摘要:deque是双端队列,可以从两端对其进行操作常用的几个操作如下:deque c 创建一个空的dequedeque c1(c2) 复制一个dequec.push_back(elem) 在尾部加入一个数据c.push_front(elem) 在头部插入一个数据c.insert(pos,elem) 在po... 阅读全文

posted @ 2015-07-02 16:24 moffis 阅读(133) 评论(0) 推荐(0)

最长回文字符串
摘要:在一个字符串中,找出最长的回文字符串// MaxSameReverse.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;bool IsReverseTheSame(dequein);deque ... 阅读全文

posted @ 2015-07-02 11:21 moffis 阅读(147) 评论(0) 推荐(0)

最大递增数
摘要:输入一串数字,找到其中包含的最大递增数。递增数是指相邻的数位从小到大排列的数字。如: 2895345323,递增数有:289,345,23, 那么最大的递增数为345。运行时间限制:无限制内存限制:无限制输入:输入一串数字,默认这串数字是正确的,即里面不含有字符/空格等情况输出:输出最大递增数样例输... 阅读全文

posted @ 2015-07-02 09:05 moffis 阅读(243) 评论(0) 推荐(0)

华为笔试
摘要:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。2、压缩字段的格式为"字符重复的次数+字符"。例... 阅读全文

posted @ 2015-07-01 23:14 moffis 阅读(157) 评论(0) 推荐(0)

进程间通信——管道通信
摘要:Windows系统编程之进程间通信作者:北极星2003来源:看雪论坛(www.pediy.com)附件:windowipc.rarWindows的IPC(进程间通信)机制主要是异步管道和命名管道。(至于其他的IPC方式,例如内存映射、邮槽等这里就不介绍了)管道(pipe)是用于进程间通信的共享内存区... 阅读全文

posted @ 2015-07-01 15:18 moffis 阅读(381) 评论(0) 推荐(0)

进程间通信——使用WM_COPYDATA消息通信
摘要:使用SendMessage向另一进程发送WM_COPYDATA消息发送WM_COPYDATA消息SendMessage(接收窗口句柄, WM_COPYDATA, (WPARAM)发送窗口句柄, (LPARAM)&copyData);copyData是要发送的数据,类型为COPYDATASTRUCT结... 阅读全文

posted @ 2015-07-01 14:13 moffis 阅读(927) 评论(0) 推荐(0)

导航