计算机统考重难点数据结构-第一讲.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * 二、链栈----不带头结点的单链表 a4 a3 a2 a1 ∧ S e p 进栈Push: p-next=S; S=p; a3 a2 a1 ∧ a4 S 出栈Pop: p=S; S=S-next; free(p); 判栈空条件: S==NULL; p 队列 队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。 在表中,允许插入的一端称作“队列尾(tail)” 允许删除的另一端称作“队列头(front)”。 队列又称FIFO(First In First Out 的缩写)表。 队列的存储表示和操作的实现 链队列 结构定义  typedef SLink QueuePtr; // 链队列的结点结构和单链表相同  typedef struct{   QueuePtr front; // 队列的头指针   QueuePtr rear; // 队列的尾指针   int length;  // 队列元素个数  } Queue;     // 链队列 循环队列 利用顺序分配存储结构实现队列 设立两个指针 front 和 rear 分别指示“队头”和“队尾”的位置 空队列时,令 front=rear=0 头指针始终指向队头元素,而尾指针指向队尾元素的下一个位置 循环队列的结构定义 typedef struct {    ElemType *elem; // 存储空间基址    int rear;    // 队尾指针    int front;   // 队头指针    int queuesize; // 允许的最大存储空间,以元素为单位   } Queue; 循环队列的初始化需要添加一个最大容量的参数 经典例题分析 【例1】若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是 A. d,c,e,b,f,a B.c,b,d,a,e,f C. b,c,a,e,f,d D.a,f,e,d,c,b 【解析】本题考查对堆栈的基本操作。栈的操作必须符合先进后出的原则,又要符合题目要求:不允许连续三次进行退栈操作。所以我们可以快速扫描四个选项,如果发现所给序列中出现长度大于或者等于3的连续逆序子序列,则可排除。选项D中出现fedcb序列,所以正确答案为D。当然也可以依次分析四个选项的进出栈操作序列: A. Push, Push, Push, Push, Pop, Pop, Push, Pop, Pop, Push, Pop, Pop; B. Push, Push, Push, Pop, Pop, Push, Pop, Pop, Push, Pop, Push, Pop; C. Push, Push, Pop, Push, Pop, Pop, Push, Push, Pop, Push, Pop, Pop; D. Push, Pop, Push, Push, Push, Push, Push, Pop, Pop, Pop, Pop, Pop; * 【例2】某队列允许在其两端进行人队操作,但仅允许在一端进行出队操作。若元素a,b,c,d,e依次入此队列后再进行出队操作,则不可能得到的出队序列是 A.b,a,c,d,e B.d,b,a,c,e C.d,b,c,s,e D.e,c,b,a,d 【解析】本题考查对队列的操作。出队序列就是在队列中的最终位置。队列的操作必须符合先进先出的原则。题目的队列允许在两端进行入队操作,但允许在一端进行出队操作。所以我们依次分析四个选项的进队操作: A.a入队,b从队头入队,c从队尾入队,d从队尾入队,e从队尾入队 B.a入队,b从队头入队,c从队尾入队,d从队头入队,e从队尾入队 C.不可能 D.a入队,b从队头入队,c从队头入队,d从队尾入队,e从队头入队 实际上我们也可以发现,不管怎么进出队列,a和b肯定是相邻的,所以我们一眼就能发现C是不可能的。 * 【例3】设循环队列的容量为70(序号从1到70),现经过一系列的人队与出队运算后,有:front=20,rear=11,则队列中元素个数为____。 解:循环队列中元素个数为 (rear-front+maxsize)%maxsize代入公式,可以得出该循环队列的元素个数为(11—20+70)%70=61 * * * * * * * * * * * * * * * * * * * * * * * * 数据结构 重难点串讲 讲师:翔高教育一级培

文档评论(0)

sandaolingcrh + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档