摘要: 栈是限制仅在表的一端进行插入和删除运算的线性表又称为后进先出表(LIFO表)。插入、删除端称为栈顶,另一端称栈底。表中无元素称空栈。基本运算有: 1) initstack(s),构造一个空栈; 2) stackempty(s),判栈空; 3) stackfull(s),判栈满; 4) push(s, 阅读全文
posted @ 2013-11-22 12:04 Hewie_Bai 阅读(441) 评论(0) 推荐(0) 编辑
摘要: Microsoft 提供的 MMSYSTEM.H 文件中定义了调用 MCI 功能的数据类型和函数原型。在使用 MCI 功能的任何源模块中都应包含该文件。 1. MCI 函数 所有的 MCI 函数名都以 mci 为前缀。对应于 MCI 命令消息和命令字符串接口方式, MCI 函数也分为两类,即命令消息 阅读全文
posted @ 2013-11-22 11:42 Hewie_Bai 阅读(1497) 评论(0) 推荐(0) 编辑
摘要: 使用MCI API,源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加入库 Winmm.lib。 VS2008在源文件加上#include "mmsystem.h" #pragma comment(lib," 阅读全文
posted @ 2013-11-21 09:42 Hewie_Bai 阅读(5677) 评论(0) 推荐(0) 编辑
摘要: 学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolved external symbol “symbol”(不确定的外部“符号”)。 如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。一般来说,发生错误的原因有两个:一是所... 阅读全文
posted @ 2013-11-19 22:03 Hewie_Bai 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 线性表的定义:具有相同特性的数据元素的一个有限序列。该序列中所含元素的个数叫做线性表长度。定义:L=(a1,a2,a3....an)其中为a1表头元素,为an表尾元素线性表的顺序存储结构其直接将线性表的逻辑结构映射到存储结构上***********************************************例:线性表La,Lb分别表示集合A,B,求A = AUB。void Union(List &La, List Lb) { // 算法2.1 // 将所有在线性表Lb中但不在La中的数据元素插入到La中 int La_len,Lb_len,i; ElemType e; L. 阅读全文
posted @ 2013-11-19 15:52 Hewie_Bai 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 第一章 概 论1.数据:信息的载体,能被计算机识别、存储和加工处理。2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。3.数据结构:数据之间的相互关系,即数据的组织形式。它包括:1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机;2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。3)数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算集合。常用的运算:检索/插入/删除/更新/排序。4.数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。数据的存储结构是逻辑结构用计算机语言的实现。5.数据类型:一个值的集合及在值上定 阅读全文
posted @ 2013-11-19 14:57 Hewie_Bai 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 滑块大小的确定: 页面方块的大小/滚动的长度=页面大小/整个范围=显示文件的数量/整个文件的数量 程序中有几点需要注意: 1.程序中设置了垂直滚动条和水平滚动条。在WM_SIZE消息中,随着窗口的变化,滚动条的那个小方块的大小也在变化。 2.在每次使用GetScrollInfo或者SetScroll 阅读全文
posted @ 2013-11-15 20:35 Hewie_Bai 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 在c++函数中,形式参数用引用和用指针都可以起到在被调用函数中改变调用函数的变量的作用。什么时候用引用作参数?什么时候用指针作参数呢 void function (int *ptr); void function(int &ref); 没有 特定的规定。。学的 久了,就 会习惯什么时候用指针什么时候用引用了! 从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不.. 阅读全文
posted @ 2013-11-15 11:58 Hewie_Bai 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 指针数组(array of pointers): 一个数组,若其元素均为指针类型数据,称为指针数组。 也就是说,指针数组中每一个元素都相当于一个指针变量。其详细形式应该如下: *a[0], ...*a[n]. 每一个数组里面存储的是其指向的地址;一维指针数组的定义形式为:类型名 *数组名[数组长度]例如:int *p[4],由于[]比*优先级更高,因此p先与[4]结合,形成p[4]的形式,这显然是数组形式。然后再与p前面的*结合,*表示此数组是指针类型的,每个数组元素都指向一个整型变量。本语句表示的含义就是说:p是一个指向二维数组的首指针,并且这个二维数组低维的维数为4。因此,编译器只是为.. 阅读全文
posted @ 2013-11-15 11:39 Hewie_Bai 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 为了做一个逼真的扫雷,我的扫雷程序的位图都是从windowsXP下面的扫雷里来的。具体是怎么获取位图的呢?win8.1不给力,习惯了vc++6.0,所以虚拟机里装上了xp,用vc++6.0加载扫雷程序,就可以获得xp原版的位图了。 这次要做的是一个计时器,扫雷的的计时器不是时、分、秒;类型的,而是百 阅读全文
posted @ 2013-11-14 14:36 Hewie_Bai 阅读(782) 评论(0) 推荐(0) 编辑