- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
 - 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
 - 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
 
                        查看更多
                        
                    
                
                                  目					录 
    前言 
    关于栈及其应用示例 
    求一个集合的所有子集问题 
    若干排序算法简单汇总(一) 
    若干排序算法简单汇总(二) 
    关于符号位扩展你又知道多少 
    集合划分问题 
    KMP算法模式匹配 
    关于二叉树的几种遍历方法 
    赫夫曼树之理论概述 
    赫夫曼树之代码实现 
本文档使用	看云	构建                                                                -	2	- 
前言 
前言 
  原文出处 :那些年 ,一起追过的算法 
  作者 :pony_maggie 
本系列文章经作者授权在看云整理发布 ,未经作者允许 ,请勿转载 ! 
那些年 ,一起追过的算法 
  希望借助这个专栏 ,能集合各种常用 ,经典的算法 ,为自己学习 ,也为分享给在校大学生 
  或者已经工作的IT从业者。可以结合以下书籍阅读本专栏 
   数据结构(严蔚敏版) ,算法设计与分析(郑宗汉版) 
本文档使用	看云	构建                                                                -	3	- 
关于栈及其应用示例 
关于栈及其应用示例 
转载请注明出处 
http///pony_maggie/article/details
作者 小马 
作为一种常用的数据结构,	了解栈对于算法的学习是非常必要的。栈有先进后出的特点 ,栈底 
指向数据表中的第一个元素 ,栈顶指向最后一个元素的下一个位置。如下图所示 
栈和线性表类似 ,也是有两种存储结构 ,分别为顺序结构和链式结构。大部分情况下 ,栈使 
用前者 ,这和它的使用场景有关 ,因为通常情况下我们不会对栈进行频繁地 ,随机地插入 , 
删除操作。下面是我用顺序结构实现的栈 ,这个栈有个特点就是它的通用性 ,因为我并没有 
限制它所存储的数据类型 ,代码如下 
  //void**其为双指针,意味入栈和出栈的将只是对应数据的地址,而不需要对数据本身进行拷贝 
  typedef	struct	 
  { 
  	       char	*base; 
  	       char	*top; 
  	       int	elementSize;	//元素所点字节大小 
  	       int	stackSize;	 //当前已分配的空间(注意不是元素的实际个数 ) 
  }ponyStack; 
  int	InitStack(ponyStack	*stack,	int	elementSize) 
  { 
  	       stack-base	 	(char	*)malloc(STACK_INIT_SIZE	*	sizeof(char)*eleme 
  ntSize); 
  	       if	(!stack-base) 
  	       { 
本文档使用	看云	构建                                                                -	4	- 
关于栈及其应用示例 
  	         	        return	RET_ERROR; 
  	         } 
  	         stack-top	 	stack-base;	//为空 
  	         stack-stackSize	 	STACK_INIT_SIZE; 
  	         stack-elementSize	 	elementSize; 
  	         return	RET_OK; 
  } 
  int	ClearStack(ponyStack	*stack) 
  { 
  	         stack-top	 	stack-base; 
  	         return	RET_OK; 
  } 
  bool	IsEmptyStack(ponyStack	stack) 
  { 
  	         if	(stack.top	  	stack.base) 
  	         { 
  	         	        return	true; 
  	         } 
  	         return	false; 
  } 
这里没有贴出全部的代码 ,更完整的可以从最后的地址那里下载。注意elementSize,这个是 
栈可以做到通用的核心。不理解的可以再研究一下代码
                
原创力文档
                        

文档评论(0)