- 博客(15)
- 资源 (16)
- 收藏
- 关注
原创 栈应用---计算表达式
为实现运算符优先级,可以使用两个工作栈,一个用来存操作数(opnd),另一个存操作符(optr) 基本思想是:1.首先置两个栈为空栈.依次读入表达式中的每个字符,若是操作数,则进opnd,若是运算符,则和optr栈顶元素比较,这时分三种情况 1.栈顶元素优先级低 直接进栈 2.相等('栈顶为'(',与之想比较的操作符为')'') 出栈,(脱去左括号) 3.栈顶元素优先级大
2013-01-30 21:43:19 544
原创 迷宫说明
const int width = 10; const int height = 10; //地图 int maze[height][width]={ //0,1,2,3,4,5,6,7,8,9 {1,1,1,1,1,1,1,1,1,1},//0 {1,0,0,1,0,0,0,1,0,1},//1 {1,0,0,1,0,0,0,1,0,1},//2 {1,0,0,0,0,
2013-01-29 20:19:23 409
原创 栈应用-走迷宫
#include #include #include #define NULL 0 #define TRUE 1 #define FALSE 0 #define RIGHT 1 #define DOWN 2 #define LEFT 3 #define UP 4 const int width = 10; const int height =
2013-01-28 22:41:12 669
原创 栈
typedef struct _stack { ElemType data; struct _stack* next; }Stack , *PStack; const int nLEN = sizeof(Stack); void InitStack(PStack* head) { (*head) = (PStack)malloc(nLEN); // (*head)-
2013-01-28 22:39:25 380
原创 链表
简单链表(有头结点) 为了方便查看,在里面打印出了一些地址,数据 这里链表的排序类似插序法 void Sort(int *a,int nlen) { int pos = 1; while(pos < nlen) { int i = 0; while(i < pos) { if(a[i] > a[pos]) { a[i] = a[i
2013-01-24 21:46:03 399
原创 俄罗斯方块小游戏
整个游戏方块就是一个二维数组,一个格子就是一个方块,这正好跟二维数组类似 二维数组哪个地方置1就表示有方块 单个小方块就是一个4*4的二维数组. 流戏中的数据结构就是这些 首先我们把全部方块数据记录起来 static int box[][4][4]={ {1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},//0 {0,1,0,0,0,1,0,0,0,1,0,0
2013-01-08 10:42:17 608 2
原创 dll
静态库(Win32 Static Library) 比较简单,类似于在别的源文件中写了一些相关函数,调用其lib时候,声明一下原型,就可以使用了 int add(int x,int y) { return x+y; } 像这样 #pragma comment(lib,".\\lib\\Debug\\lib.lib") extern int add(int ,int ); DllM
2013-01-07 13:30:25 408
原创 virtual析构函数的作用
#include class Base { public: Base(){ cout<<"Base Constructor"<<endl; } ~Base(){ cout<<"Base Destructor"<<endl; } public: virtual void DoSomething(){ cout<<"Base DoSomething"<<endl; } };
2013-01-06 15:55:25 556
原创 类成员函数指针
class Base { public: Base():f_(0){} virtual ~Base(){} public: typedef void (Base::*FUNC)(); void setf(FUNC f) { f_ = f; } FUNC getf() { return f_; } public: FUNC f_; }; class Derived:p
2013-01-06 15:06:10 404
原创 C++中的虚函数
虚函数的实现 简单的讲,当定义一个虚函数后,类里面会有一个__vptr指针,指向vtbl(虚函数表),虚函数表里面存放了其对应的虚函数的地址 所有当没有其它数据成员时,用sizeof取其大小,其大小为4 class A { public: virtual void Fun(){ printf("A::Fun()\n"); }; virtual void Fun2()
2013-01-06 14:11:18 445
原创 __stdcall 与 __cdecl
_stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除(也就是自己清除),函数在编译的时候就必须清楚参数个数。 _cdecl 是CDeclaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除。被调用者(也就
2013-01-06 12:39:43 479
原创 C对内存的使用
1、 文本段:包含程序的指令,它在程序的执行过程中一般不会改变。 2、 数据段:包含了经过初始化的全局变量和静态变量,以及他们的值。 3、 BSS段:包含未经初始化的全局变量和静态变量。 4、 栈段:包含了函数内部声明的局部变量。 5、 堆段:动态分配 一个小例子: #include #include #include int ga;//BSS段,全局变量 static
2013-01-05 21:09:02 552
原创 SDI单文档的启动过程
BOOL CSDIApp::InitInstance() { .............. CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CSDoc), RUNTIME_CLASS(CMainFrame), // m
2013-01-04 22:09:42 1813
原创 深入浅出MFC---Frame8
AfxWndProc AfxCallWndProc CCmdTarget OnCmdMsg virtual CWnd WindowProc virtual OnCommand virtual DefWindowProc virtual CFrameWnd OnCommand virtual
2013-01-04 17:56:48 1430
原创 深入浅出MFC---Frame7(消息映射)
#include #include ////////////////////////////////////////////////////////////////////////// enum AfxSig { AfxSig_end = 0, // [marks end of message map] AfxSig_bD, // BOOL (CDC*) Af
2013-01-04 15:20:29 1229
STL源码剖析.pdf
2012-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人