C语言数据结构_第04讲_栈.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用数据结构基础 第3章 栈 第 3 章 栈 知 识 点 栈的定义和特点 栈的基本运算和算法 栈的典型应用 难 点 后缀表达式的算法 数制的换算 利用本章的基本知识设计相关的应用问题 要 求 掌握栈的特点 掌握栈的基本运算 熟悉栈的各种实际应用 能设计栈的应用的典型算法 了解栈的运算时间复杂度分析 第3章 目录 3-1 栈的定义与运算 3-2 栈的存储和实现 3-3 栈的应用举例 小 结 实验3 栈子系统 习题3 3-1 栈的定义和运算 3-1-1 栈(Stack)的定义 1. 栈的定义 ??? 栈是限制在表尾进行插入和删除的线性表。 2. 栈的特性 (1)栈的主要特点是“后进先出” (2)允许插入、删除的这一端称为栈顶(Top),另一端称为栈底(Bottom)。 3. 应用实例 (1)分币筒; (2)铁路调度站。 3-1-2 栈的运算 1.进栈: Push(s,x) 初始条件:栈s已存在且非满。 操作结果:在栈顶插入一个元素x,栈中多了一个元素。 2.出栈:Pop(s) 初始条件:栈s存在且非空。 操作结果:删除栈顶元素,栈中少了一个元素。 3.读栈顶元素:ReadTop(s,e) 初始条件:栈s已存在且非空。 操作结果:输出栈顶元素,但栈中元素不变。 4. 判栈空:SEmpty(s) 初始条件:栈s已存在。 操作结果:若栈空则返回为0,否则返回为1。 5. 判栈满:SFull(s) 初始条件:栈s已存在。 操作结果:若栈满则返回为0,否则返回为1。 6. 显示栈元素:ShowStack (s) 初始条件:栈s已存在?,且非空。 操作结果:显示栈中所有元素。 3-2 栈的存储和实现 3-2-1 顺序栈 1. 顺序栈的实现 (1) 用一维数组实现顺序栈 设栈中的数据元素的类型是字符型,用一个足够长度的一维数组s来存放元素,数组的最大容量为MAXLEN,栈顶指针为top,则顺序栈可以用C(或C++)语言描述如下: #define MAXLEN 10 // 分配最大的栈空间 char s[MAXLEN]; // 数据类型为字符型 int top; // 定义栈顶指针 (2) 用结构体数组实现顺序栈 顺序栈的结构体描述: #define MAXLEN 10 // 分配最大的栈空间 typedef struct // 定义结构体 { datatype data[MAXLEN]; // datatype可根据用需要定义类型 int top; // 定义栈顶指针 } SeqStack; 再定义一个指向顺序栈的指针: SeqStack *S; // 定义S为结构体类型的指针变量 (3)栈操作的示意图如图3-3所示。 当top = -1时,表示栈空,如图3-3(a); 当top=0时,表示栈中有一个元素,如图3-3(b)表示栈中已输入一个元素A; 入栈时,栈顶指针上移,指针top加1,如图3-3(c)是6个元素入栈后的状况; 出栈时,栈顶指针下移,指针top减1, 如图3-3(d)是在F、E相继出栈后的情况。此时栈中还有A、B、C、D 4个元素,top=3,指针已经指向了新的栈顶。但是出栈的元素F、E仍然在原先的存储单元,只是不在栈中了,因为栈是只能在栈顶进行操作的线性表。 当top=9时,即top=MAXLEN–1,表示栈满,如图3-3(e)。 2.顺序栈运算的基本算法 (1)置空栈 首先建立栈空间,然后初始化栈顶指针。 SeqStack *Snull() { SeqStack *s; s=new (SeqStack); // 在C语言中用s=malloc(sizeof(SeqStack)); s-top= –1; // 置栈空 return s; } (2) 进栈 进栈运算是在栈顶位置插入一个新元素x,其算法步骤为: (a)??? 判栈是否为满,若栈满,作溢出处理

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档