沧桑不尽
无穷的沧桑,不尽的落叶
posts - 40,comments - 278,views - 77405
摘要: 这也不算是一本书,是我为了能够帮助一些入门不深的朋友写的,面向的读者是学习了C语言或者C++,但却并不知道怎么去做出有实际用途的程序来。从去年开始写的,到今年3月底完成。本来自己做了一个论坛,原文发布在自己的论坛上,可自己的毕竟是小的,看得人也不多,现在空间也到期了,别人看不到了,想了想,应该给自己的汗水找个稳定的家吧,同时希望能够帮助更多的朋友,发现博客园,聚集着这么多的技术狂热者或好心的朋友,... 阅读全文
posted @ 2009-08-03 17:48 沧桑不尽 阅读(3625) 评论(37) 推荐(10) 编辑
//队列非递归遍历需要
template<class NodeType>
class Stack
{
public:
	Stack(){nIndex = 0;}
	~Stack(){}

	//入栈
	void Push(NodeType *p)
	{
		arr[nIndex] = p;
		++nIndex;
	}

	//获取栈顶元素
	NodeType *Top()
	{
		--nIndex;
		if (nIndex<0)
		{
			nIndex = 0;
			return NULL;
		}
		return arr[nIndex];
	}

	bool IsEmpty()
	{
		return nIndex == 0;
	}

private:
	NodeType *arr[100];
	int nIndex;//栈顶的位置
};

struct Node 
{
	int nData;
	struct Node *pLchild;
	struct Node *pRchild;
};

//递归遍历
void DG_BianLi(Node *pTree)
{
	if (!pTree)
	{
		return;
	}
	printf("%d ",pTree->nData);
	DG_BianLi(pTree->pLchild);
	DG_BianLi(pTree->pRchild);
}

//非递归遍历
void FDG_BianLi(Node *pTree)
{
	Node *pNode = pTree;
	Stack<Node> stack;
	while(pNode || !stack.IsEmpty())
	{
		if (pNode)
		{
			printf("%d ",pNode->nData);
			stack.Push(pNode);
			pNode = pNode->pLchild;
		}
		else
		{
			pNode = stack.Top();
			pNode = pNode->pRchild;
		}	
	}
}


int _tmain(int argc, _TCHAR* argv[])
{
	//创建一个小树
	Node node[5] = 
	{
		{1,NULL,NULL},
		{2,NULL,NULL},
		{3,NULL,NULL},
		{4,NULL,NULL},
		{5,NULL,NULL}
	};

	node[0].pLchild = &node[1];
	node[0].pRchild = &node[4];

	node[1].pLchild = &node[2];
	node[2].pRchild = &node[3];
	
	//DG_BianLi(node);
	FDG_BianLi(node);

	getchar();
	return 0;
}

posted @ 2011-03-11 13:40 沧桑不尽 阅读(532) 评论(0) 推荐(0) 编辑
摘要: int _tmain(int argc, _TCHAR* argv[]){ char num1[100] = {'1'}; char num2[100] = {'2'}; char sum[101] = {0}; for (int i=0;i<100;++i) { num1[i] = '1'; num2[i] = '9'; } int nJinWei = 0; int nTmpSum = 0; for (int i=0;i<100;++i) { nTmpSum = (num1[i] - '0') + ( 阅读全文
posted @ 2011-03-11 10:57 沧桑不尽 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 可变参数对我多少有点诱惑,当初一开始学习C的时候,就被它迷惑了,我自己写的函数都是定参的,当时以我的功力,断是费上三天三夜功夫也搞不定可变参数。在汇编的课开完之后,其实对c的一些技巧已经不稀奇了,C毕竟是C,而不像C++有太多的语法规定和编译器规定。昨天头热,想再来看看这个变参,也许可以偶尔在工作上用一下。参数是靠堆栈来保存的,其实看看堆栈就知道怎么来获取的了,那获取变参应该就简单了:1.在堆栈中获取数据2.将这些数据转换成参数的值。加之C中已经有人做了这么几个宏:代码对于这些宏,对于不同的平台定义是不一样的,但作用都是一样一样的。我写了几行代码看了下堆栈代码断点到f函数被调用那行,转到汇编下 阅读全文
posted @ 2010-12-30 09:03 沧桑不尽 阅读(343) 评论(2) 推荐(0) 编辑
摘要: 按Ctrl+D快捷键 即可。 阅读全文
posted @ 2010-10-14 14:03 沧桑不尽 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 静态控件也是比较常用的控件,在VS开发环境中用的应该挺频繁的吧。其实mfc中实现对窗口美化,主要依赖于重绘。static控件也是个窗口,windows为其留有自绘的权利,可以设置其样式为SS_OWNERDRAW,Windows就会把其绘制权利交给我们的代码,怎么绘制就看我们的代码了。mfc中更好的一种方式就是消息反射,省的自己来做这一步操作了,我们重载CStatic中的DrawItem方法,进行自... 阅读全文
posted @ 2010-09-17 14:17 沧桑不尽 阅读(3531) 评论(6) 推荐(1) 编辑
摘要: 一次朋友曾给我传了个有趣的程序,单击后振动的窗口飘来飘去,其实也就是不停地移动窗口,后来分析后,才知道原来只是移动当前活动的窗口而已,想想这个也很好现,就是获得当前活动的窗口,然后用MoveWindow函数去改变它的位置不就可以了,原来还以为这个程序有什么特别的呢,后来想也没什么了,这节我们来写个这样的程序,我也不想复杂的实现,就简单点。/********************WobbleWnd... 阅读全文
posted @ 2010-03-20 18:04 沧桑不尽 阅读(1271) 评论(0) 推荐(0) 编辑
摘要: 《C语言到底能干什么》本是我最痛苦的时候所作,实在是生不如死,但人要珍爱自己的生命,我这点本能还是有的。于是就转移精力地写这了这个系列文章,在学校时完成了一部分,原来发在自己的网站上,后面空间到期,也无钱去养一个网站,就消失了,而后发现博客园不错,工作后,就在闲暇的时候,把文章慢慢往上面贴,得一些朋友的支持,也得到了不好唾骂,说我这个是win32 api编程,看windows程序设计就可以了。估计... 阅读全文
posted @ 2010-03-12 00:06 沧桑不尽 阅读(872) 评论(2) 推荐(1) 编辑
摘要: TrackPopupMenu  函数功能:该函数在指定位置显示快捷菜单,并跟踪菜单项的选择。快捷菜单可出现在屏幕上的任何位置。  函数原型:BOOL TrackPopupMenu(HMENU hMenu,UINT uFlags,int x,int y,int nReserved,HWND hWnd,CONST RECT”prcRect);  参数  hMenu:被显示的快捷菜单的句柄。... 阅读全文
posted @ 2010-03-05 19:47 沧桑不尽 阅读(821) 评论(0) 推荐(1) 编辑
摘要: 先做个广告:个人架设了论坛http://www.crazyctime.com/,欢迎各位热爱C/C++编程技术的朋友进来交流学习LoadAccelerators  函数功能:调入加速键表。该函数调入指定的加速键表。  函数原型:HACCEL LoadAccelerators(HINSTANCE hlnstance,LPCTSTR lpTableName);  参数:  hlnstance:模块的一... 阅读全文
posted @ 2010-03-03 21:50 沧桑不尽 阅读(1551) 评论(0) 推荐(1) 编辑
摘要: MFC中封装很多常用的控件,把类名也给封装了,没有提供明显的接口出来,用win api写窗口程序,第一步就是注册窗口类此时类名和标题名是一起注册的,所以能把标题很好地让用户来设定,类名也应该是很简单的,可惜的是MFC没有这样做,原因也许是window name可以不停的改,而类名不能。窗口的类名是有Create来确定的,要在Create前,给窗口选择一个已经注册的窗口类名,作为参数窗口Create... 阅读全文
posted @ 2010-02-02 22:43 沧桑不尽 阅读(3031) 评论(0) 推荐(1) 编辑
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示