- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第三章栈和队列
数据结构第三章 栈和队列 3.1 栈 3.1.1 栈的定义 栈(stack):是限定仅在表尾进行插入和删除操作的线性表。又称为后进先出(last in first out)的线性表(简称LIFO结构)。 栈顶(top):栈表尾端。 栈底(bottom):栈表头端。 例:假设栈 S=(a1,a2,…,an) ,则 a1 称 为栈底元素,an 为栈顶元素。栈中元素按 a1,a2,…,an 的次序进栈,退栈的第一个元 素应为栈顶元素。如右图所示。 3.1 栈 3.1.2 栈的顺序存储结构 定义:顺序栈(即栈的顺序存储结构):是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。 C语言描述 typedef struct stack_tag { elemtype *elem; //指向存放数据元素的内存块 int top; //栈顶标识,elem[top]是栈顶元素 int size; //栈的容量 }SQSTACK; 图形表示 3.1 栈 初始化栈 int InitSqstack(SQSTACK *S, int n) { //初始化顺序栈,栈的容量是n。成功则返回1,否则返回0 S-elem=(elemtype *)malloc(n*sizeof(elemtype)); //为数据元素分配内存 if (S-elem==NULL) return 0; //初始化失败 S-size=n; //设置栈的容量 S-top=-1; //设置栈为空栈 return 1; } 销毁栈 void DestroySqstack(SQSTACK *S) { //释放栈所占有的内存 free(S-elem); //释放内存,并设置为NULL S-elem=NULL; S-top=-1; //将其他成员设置成安全值 S-size=0; } 3.1 栈 入栈 int Push(SQSTACK *S,elemtype e) { //在栈顶一端插入数据元素e,操作成功,则返回1,否则返回0 if (IsSqstackFull(*S))return 0; //栈满,操作失败 S-top++; //top增1 S-elem[S-top]=e; //将e赋值成新的栈顶 return 1; } 出栈 int Pop(SQSTACK *S,elemtype *e) { //获取栈顶数据元素,并删除栈顶。操作成功,则返回1,否则返回0 if (IsSqstackEmpty(*S)) return 0; //如果栈空,操作失败 *e=S-elem[S-top]; //获取栈顶元素 S-top--; //删除栈顶 return 1; } 3.1 栈 判断栈空、栈满 int IsSqstackEmpty(SQSTACK S) { //如果栈空,则返回1,否则返回0 return S.top==-1; //top是栈顶标识,是-1时表示空栈 } int IsSqstackFull(SQSTACK S) { //如果栈满,则返回1,否则返回0 return S.top==S.size-1; //top作为elem的下标,其最大值是size-1 } 3.1 栈 3.1.3 栈的链式存储结构 3.2 栈的应用举例 3.2.1 数制转换 十进制数N和其他d进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个是辗转相除法: N = ( N div d ) × d + N mod d (其中:div为整除运算,mod为求余运算) 3.2 栈的应用举例 算法3.1如下: void conversion ( ) { //输入一个非负十进制整数,转换成八进制
您可能关注的文档
- 试点高校网络教育部分公共基础课全国统一考试2008年12月.ppt
- 试分析故宫博物馆功能与角色的转变原因part2.ppt
- 试卷分析与设计.ppt
- 试卷类型a.doc
- 试卷讲评.ppt
- 试卷样本.doc
- 试题库.doc
- 试试就能行,争争就能赢这是电视连续剧《十七岁不哭》.ppt
- 试验设计与设计的准则.ppt
- 视觉设计.ppt
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 机械行业“人形机器人的Optimus时刻”系列(五):触觉感知(电子皮肤),高山将越,坦途在望.pdf
- 培训教材污水处理厂运营管理方案.pptx VIP
- 纪检委处理回复函.docx
- AP微积分BC 2016年真题 (选择题+问答题) AP Calculus BC 2016 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 武汉市2025届高中毕业生四月调研考试(四调)物理试卷(含答案).pdf
- 《西安事变》课件.ppt VIP
- 排水沟设计计算11.xls VIP
- 2010版中药典,中国药典2010年版.doc
- 精彩拍摄跟我来.docx
- 小学常用单词分类汇总衡水体英语字帖(含例句).pdf
文档评论(0)