- 5
- 0
- 约2.74千字
- 约 26页
- 2018-10-11 发布于安徽
- 举报
第3章 栈、队列和数组 3.1 栈 一、栈的定义和运算 1、定义: 栈(Stack): 是只能在一端插入和删除的线性表。 一、栈的定义和运算-术语 下面介绍有关栈的术语: 一、栈的定义和运算-运算 3、栈的基本运算 (1)初始化栈:init_stack(S); (2)判栈空:stack_empty(S); (3)读栈顶元素:stack_top(S,x); (4)入栈:push_stack(S,x); (5)出栈:pop_stack(S); (6)判栈满:stack_full(S); 二、顺序栈 1、存储结构: ——采用顺序表来存储的栈; typedef struct {elementtype data[maxsize]; int top; } seqstack; 引用:seqstack S; 二、顺序栈-图例 下图即为一个顺序栈: 二、顺序栈-图例 如图所示: 二、顺序栈-运算的实现 2、运算的实现 : (1)初始化: void init_stack(seqstack * S) {S-top=-1;} (2)判栈空: BOOL stack_empty(seqstack S) {if (S.top==-1) return TRUE; else return FALSE; } 二、顺序栈-运算的实现入栈 (3)入栈: void push_stack(seqstack *S, elementtype x) { if(S-top==maxsize-1) error(“溢出”); else S-data[++S-top]=x ; } 二、顺序栈-运算的实现出栈 (4)出栈: void pop_stack(seqstack *S,elementtype x); { if(S-top==-1) error(“栈空”); else x=S-data[S-top--]); } 三、链栈—采用链表存储的栈 三、链栈 链栈结构图: 入栈 链栈入栈: 出栈 链栈出栈: 四、栈的应用 1、栈的基本应用实例: 设栈的输入序列依次为1,2,3,4,则所得的输出序列不可能是________ 。 a 1,2,3,4 b 4,2,3,1 c 1,3,2,4 d 3,4,2,1 四、栈的应用- 2 2、表达式的计算: 模拟表达式:12+*6-4/2的求解过程。 四、栈的应用- 2 2、表达式的计算: 运算符优先级比较: ‘* /’ ‘+ -’ ‘#’ 四、栈的应用- 2 如上例: 四、栈的应用- 2 最终结果: 四、栈的应用- 3 3、递归与递归的阅读: (1)递归的定义: 如果一个函数直接或间接地调用自己,则称之为递归函数。 四、栈的应用- 3 (2)递归的一般形式: void fname(参数表) { if(数据作为递归出口) 简单操作; else{简单操作; fname(参数表);简单操作; [fname(参数表);简单操作;] //可能有多次调用 } } 四、栈的应用- 3 (3)递归的阅读: 四、栈的应用- 3 如果例子里的程序略做变化: 四、栈的应用- 3 void p(int n) { if(n0) { p(n-1); coutn; p(n-1); } } * * 2、特点:后进先出(LIFO)。 … an a2 a1 入 出 …… an-1 an a2 a1 入栈 出栈 栈顶 栈底 top a1 a2 a3 a4 … an data top seqstack 注意:(1)top==-1时栈为空; (2)栈顶元素是data[top] a2 a3 a1 top 3 2 1 0 -1 3 2 1 0 -1 top 空栈 栈顶元素为a3 a2 a3 a1 3 2 1 0 -1 top x a2 a3 a1 3 2 1 0 -1 top a3 top an an-1 a2 a1 ^ a1 a2 a3 a4 ^ top x P × a1 a2 a3 a4 ^ top × 例 4 3 2 1 ? b 例 运算符 操作数 #12+5*6-4/2# 操作数运算符各自依次入栈。 入栈规则:当前入栈的运算符
您可能关注的文档
- 统计(5):茎叶图与直方图的比较.ppt
- 王维使至塞上.ppt
- 我的 小小课件儿.ppt
- 我所理解的信息技术(颜2).ppt
- 现代科技发展的利.ppt
- 香椿的修剪技术_刘伟海.ppt
- 小狗包弟 时燕君.ppt
- 小蝌蚪找妈妈《3》.ppt
- 小蝌蚪找妈妈用.ppt
- 小学美术一年级说课_穿花衣的热带鱼.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 园区招商与先进制造业发展研究.pdf VIP
- 2025年拍卖师慈善拍卖现场竞拍氛围营造专题试卷及解析.pdf VIP
- 2025年信息系统安全专家工控协议基础概念与分类专题试卷及解析.pdf VIP
- 2025年金融风险管理师资产证券化风险暴露资本处理专题试卷及解析.pdf VIP
- 2025年无人机驾驶员执照电磁环境干扰风险评估专题试卷及解析.pdf VIP
- 小学至高中人工智能辅助下的学习时间管理模型构建与应用研究教学研究课题报告.docx
- IATF16949:ISO9001-2016中英对照版本.pdf VIP
- 某图书馆大楼供配电系统设计.doc VIP
- 国资私募基金合规风控实务研究报告(2024).pdf VIP
- 海信HZ55E5D说明书用户手册.pdf
原创力文档

文档评论(0)