- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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    * * * * * * * * * * * * * * * * * * * * * * * * 数据结构 重难点串讲 讲师:翔高教育一级培
                您可能关注的文档
最近下载
- 姜黄栽培技术ppt课件.pptx VIP
- 2024年北师大版八年级上册教学设计第四章4.4 一次函数的应用.docx VIP
- 5C培训模拟试题及其答案解析,重症医学专科资质培训班模拟考试.docx VIP
- 2024年中国农业银行招聘考试笔试试题.docx VIP
- 公共营养的资料.pptx VIP
- 2025入党考试题库(附答案).pdf VIP
- 新课标人教版六年级上册数学第三单元测验试题.pdf VIP
- 党纪学习教育:《中国共产党党员网络行为规定》解读PPT.pptx VIP
- 2025年新能源汽车市场消费者购车决策影响因素及品牌满意度调查报告.docx
- 十八项医疗核心制度(最新) .pdf VIP
 原创力文档
原创力文档 
                        

文档评论(0)