- 1
- 0
- 约9.06千字
- 约 55页
- 2018-05-14 发布于四川
- 举报
第3章 第3章 栈和队列 3.1 栈 3.2 栈的应用举例 3.3 栈与递归的实现 3.4 队列 3.1 栈 ( Stack ) 1.定义:限定只在表的一端(表尾)进行 插入和删除操作的线性表 特点:后进先出(LIFO) 允许插入和删除 的一端称为栈顶 (top),另一端称 为栈底(bottom) 2. 栈的表示和实现 1)顺序栈——栈的顺序存储结构 2)链栈——栈的链式存储结构 3)静态分配整型指针 1)顺序栈——栈的顺序存储结构 限定在表尾进行插入和删除操作的顺序表 类型定义: p46 typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; SqStack s; 说明: base称为栈底指针,始终指向栈底; 当base = NULL时,表明栈结构不存在。 top为栈顶指针 a. top的初始值指向栈底,即top=base b. 空栈:当top=base时为栈空的标记 c. 当栈非空时,top的位置:指向当前栈 顶元素的下一个位置 stacksize ——当前栈可使用的最大容量 几点说明: 栈空条件:s. top =s. base 此时不能出栈 栈满条件:s.top-s.base=s.stacksize 进栈操作:*s.top++=e; 或*s.top=e; s.top++; 退栈操作:e=*--s.top; 或s.top--; e=*s.top; 当栈满时再做进栈运算必定产生空间溢出, 简称“上溢”; 当栈空时再做退栈运算也将产生溢出,简 称“下溢”。 基本操作的实现 栈的初始化操作 p47 Status InitStack(SqStack S) 取栈顶元素 p47 Status GetTop(SqStack S, SElemType e) 进栈操作 p47 Status Push(SqStack S, SElemType e) 退栈操作 p47 Status Pop(SqStack S, SElemType e) 栈的初始化操作 p47 Status InitStack (SqStack S) { S.base = (SElemType )malloc(STACK_INIT_SIZE * sizeof(ElemType)); if (!S.base) return (OVERFLOW); S.top=S.base; S.stacksize = STACK_INIT_SIZE; return OK; } 取栈顶元素 p47 Status GetTop(SqStack S, SElemType e) { if (S.top == S.base) return ERROR; e = *(S.top-1); return OK; } 进栈操作 p47 Status Push(SqStack S, SElemType e) { if (S.top-S.base=S.stacksize) { S.base=(SElemType*)realloc(S.base, (S.stacksize+STACKINCREMENT) *sizeof(ElemType)); if (!S.base) return (OVERFLOW); S.top = S.base +S.stacksize; S.stacksize += STACKINCREMENT; } *S.top++ = e; /* *S.top = e; S.top = S.top+1; return OK; } 退栈操作 p47 Status Pop(SqStack S, SElemType e) { if (S.top == S.base) return ERROR; e=*--S.top; /* S.top= S.top-1; e=*S.top; return OK; } 2)链栈——栈的链式存储结构 不带头结点的单链表,其插入和删除操作仅限制在表头位置上进行。链表的头指针即栈顶指针。 类型定义: typedef str
您可能关注的文档
- 022838_无线资源管理RRM(一):资源管理与负载控制.ppt
- 测试流程培训2011-9-1.pptx
- 王全楚应激性肝损害.ppt
- Sarcoidosis PET结节病的影像表现.pptx
- 六西格玛管理copq.ppt
- 降雨、地震滑坡预测.ppt
- 第06章_NTFS磁盘的安全与管理.pptx
- 第12、13、14次课 定时计数器.ppt
- 频数的实例第一课时.ppt
- 外国古代建筑赏析.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 党委书记、董事长在2026年党风廉政建设和反腐败工作会议上的讲话.docx VIP
- 浙江婺剧艺术研究院(浙江婺剧团)-金华市政府.doc VIP
- 一种适用于强化餐厨垃圾水解制备碳源的复合药剂及方法.pdf VIP
- 护理不良事件报告及管理制度PPT课件.pptx VIP
- 岛津lc2030c高效液相色谱仪操作指南.doc
- 成人雾化吸入护理-2023中华护理学会团体标准.pptx VIP
- 跨学科项目式学习管理规范.docx VIP
- 2025年成都市中考(初中学业水平考试)数学试题卷(含标准答案).pdf
- 模拟电子技术01__半导体器件基础.pdf VIP
- 甘肃省兰州市九年级(上)期末物理试卷.docx VIP
原创力文档

文档评论(0)