- 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)