版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
223栈4栈45数学模栈中元素a(n),a(n-数学模栈中元素a(n),a(n-表中没有元素时称为空按照a(1),a(2),…a(n)的次序进a(1)为栈底元素,a(n)为栈顶元按照a(n),a(n-1),…a(1)的次序依次退出表元素的存取原则:LIFOڞ(Last先进后出665数学模栈中元素a(n),a(n-65数学模栈中元素a(n),a(n-表中没有元素时称为空按照a(1),a(2),…a(n)的次序进a(1)为栈底元素,a(n)为栈顶元4321按照a(n),a(n-1),…a(1)的次序依次退出表元素的存取原则:LIFOڞ(Last先进后出64数学模栈中元素a(n),a(n-允许插入、删除的表首端称为栈34数学模栈中元素a(n),a(n-允许插入、删除的表首端称为栈3表中没有元素时称为空按照a(1),a(2),…a(n)的次序进a(1)为栈底元素,a(n)为栈顶元21按照a(n),a(n-1),…a(1)的次序依次退出表元素的存取原则:LIFOڞ(Last先进后出6564 数学模栈中元素a(n),a(n-允许插入、删除的表首端称为栈表尾为固定端,称为4 数学模栈中元素a(n),a(n-允许插入、删除的表首端称为栈表尾为固定端,称为栈32表中没有元素时称为空按照a(1),a(2),…a(n)的次序进栈 1a(1)为栈底元素,a(n)为栈顶元按照a(n),a(n-1),…a(1)的次序依次退出表元素的存取原则:LIFOڞ(Last先进后出67ADT—判断S在栈顶插入元素a(n-7ADT—判断S在栈顶插入元素a(n-...数组实现线性表的时候,如果插入和删除操作数组实现线性表的时候,如果插入和删除操作栈的扩展方向为数组上方(下标增大的方向8数组实现栈结构typedefstructastack数组实现栈结构typedefstructastacktypedefstruct9543210stk_top=-543210stk_top=-543210stk_top=- 543210stk_top=- 554433221100stk_top=- 554433221100stk_top=- 554433221554433221100stk_top=- FEDCBA5544332211554433221100stk_top=- FEDCBA554433221100stk_top=-554433221100stk_top=- Mstk_top=-5创建一个容量为size的空StackStackInit(int43{StackS=malloc(sizeofS->top=-25创建一个容量为size的空StackStackInit(int43{StackS=malloc(sizeofS->top=-210returntop=-} intStackEmpty(StackS){returnS->top>==S-栈顶元素{if栈顶元素{if(StackEmpty(S))Error("Stackisempty");}入栈操作voidPush(StackItemx,Stack{if(StackFull(S))Error("Stackis//xԅෛጱᶮزᔰ҅出栈操作voidPop(Stack{if(StackEmpty(S))Error("Stackisempty解决方目的:提高空间利用率,减少发生栈上溢的可能多个解决方目的:提高空间利用率,减少发生栈上溢的可能多个栈共享同一个数组空间(前提:栈的数据类型一致示21120n两个栈共享一个数栈底分别固定地位于数组的两栈顶各自向数组的中间扩展,实际可用空间大于a(n-0a(n-0链栈的结点typedefstruct链栈的结点typedefstructsnodetypedefstruct{StackItemelement;Slinknext;slink{slinkif((p=malloc(sizeof(StackNode)))==0)Error("Exhaustedmemory");elsereturn}链栈的typedefstructlstacktypedefstruct{ }将top置为空指针,将top置为空指针,创建一个空Stack{StackS=malloc(sizeof*S);return}检测topintStackEmpty(Stack{returnS-}intStackFull(StackintStackFull(Stack{returnint{Slinkreturn1;{return}}StackItemStackTop(StackStackItemStackTop(Stack{if(StackEmpty(S))Error("Stackisempty");elsereturnS->top-}voidPush(StackItemx,Stack{slinkif(StackFull(S))Error("StackisFull");p-}StackItemPop(Stack{slinkp;StackItemif(StackEmpty(S))Error("Stackisempty");return}voidParenthesis(char{inti++)voidParenthesis(char{inti++){if(expr[i-҅ /ݩ॒ቘelse%d\n”,}}//Ӿ֟ۃጱprintf("֖ᗝ%d॒ጱ}对称:如果xy,则y对称:如果xy,则y传递:如果xy且yz,则xz{0,3,6,…},{1,4,7,…},{0,3,6,…},{1,4,7,…},系≡定义如下:x≡y的充要条件是x和y属于同问题描问题描实集合等价条件:1≡2,5≡6,3≡4,14初始将S中的每一个元素都看成一个等价{1},{2},{3},{4},{5},{6},{处理等价条件12,{1,23456处理等价条件5≡6{1,2345,6处理等价条件3≡4{1,23,45,6处理等价条件1≡4{1,2,3,45,6解决方解决方链表的插入操栈的应forfor(i=1;i<=n;i++)顺序处理所给等顺序处理所给等价性条目标:使L[i]中包含由等价性条件显式给出的与i等价元输入格式b含义a等价于a的链表中要包含b的链表中也要包含实for(i=1;i<=r;scanf("%d%d",&a,}L214430050601401043020L214430050601401043020for(i=1;i<=n;for(i=1;i<=n;i++)for(i=1;i<=n;if{//ݎሿෛጱᒵհᔄpitfᒵհᔄғt[]1;…ञತکଚӬڊಅ๋}}寻找等价元寻找等价元{j=Pop(stack)//ӾڊݐᒵհᔄӾزᔰfor(a=1;a<=b;a++)}}计算时间复杂性O(n+r)(n个元素个数,r҅ ۗᔱຽ᭭rr1rsr1rsr21trsrsr21trsrsr213trsrsrtsr213trsrsrtsr213trssrrsrtsr213trssrrsrtsr213trssrrrsrtsr213trssrrrsrtsr213trssrrrsrtsr213trssrrrsrtsr后调用的函数先返回——后调用的函数先返回——用1 1 print(int intif( for(i=1;i<=w;++i)}}w 3,3, 3w 3,3, 3ww 3,3, 2, ww 3,3, 2, 32www 3,3, 2, www 3,3, 2, 321wwww 3,3, 2, wwww 3,3, 2, 3201wwww4)3213)212)1wwww4)3213)212)1) 3,3, 2, 3201wwww4)3)212)1)wwww4)3)212)1) 3,3, 2, ( 33201wwww4)3)2)1)wwww4)3)2)1) 3,3, 2, )) ( 33201wwww4)3)2))wwww4)3)2)) 3,3, 2, (1))) ( 33201wwww4)3)2)) 3,wwww4)3)2)) 3,3, 2, (1))) ( 33201-1234'%%!2,-1234'%%!2,))4434434453734453734445373444537344R[7][712345671234567 01111101000010100110010101101011010110R[7][712345671234567 0111110100001010011001010110101101011011000000000R[7][7123456712345671 0111110100001010011001010110101101011R[7][7123456712345671 0111110100001010011001010110101101011011000000000R[7][71234567123456712 011111010000101001100101011010110101R[7][71234567123456712 0111110100001010011001010110101101011011000000000R[7][712345671234567122 01111101000010100110010101101011010R[7][712345671234567122 0111110100001010011001010110101101011011000000000R[7][7123456712345671223 0111110100001010011001010110101101R[7][7123456712345671223 0111110100001010011001010110101101011011000000000R[7][71234567123456712234 011111010000101001100101011010110R[7][71234567123456712234 0111110100001010011001010110101101011011000000000astackforaastackforastackforto队列队列队列中元素a(1),a(2),a(n-1),队列中元素a(1),a(2),a(n-1),4队列中元素a(1),a(2),a(n-1),3214队列中元素a(1),a(2),a(n-1),3214队列中元素a(1),a(2),a(n-1),3214队列中元素a(1),a(2),a(n-1),3214队列中元素a(1),a(2),a(n-1),3214队列中元素a(1),a(2),a(n-1),321QueueEmpty(Q)ғQueueEmpty(Q)ғڣෙQueueFull(Q)ғڣෙᴚڜQฎވԅჿEnterQueue(x,Q):ᴚڜQጱᴚੲൊtypedefstructlquetypedefstructlquetypedefstructᦤൊכ//^typedefstructlquetypedefstruct^typedefstructlquetypedefstruct^typedefstructlquetypedefstructxx^ᦤ^typedefstructlquetypedefstructxx^ᦤכ/^typedefstructlquetypedefstructxx^ᦤכ/yxy^^typedefstructlquetypedefstructxx^ᦤכ/yxy^^typedefstructlquetypedefstructxx^ᦤכ/yxy^xxy^^typedefstructlquetypedefstructxx^ᦤכ/yxy^xxy^typedefstructlque^typedefstructxx^ᦤכ/yxy^xxy^y^typedefstructlque^typedefstructxx^ᦤכ/yxy^xxy^y^ ෫߸ ෫߸ۑᚆғڠୌQueue{QueueQ=malloc(sizeof*Q);return}ၥᦶfrontฎވԅᑮڣෙᦶᦶړӞӻෛintQueueFull(Queue{returnQMemFull();}intQMemFull(){qlinkif((p=malloc(sizeof(Qnode)))==0)return1;else{free(p);return0;}}QItemQueueFirst(Queue{if(QueueEmpty(Q))Error("QueueisEmpty");returnQ->front->element;QItemQueueLast(Queue{if(QueueEmpty(Q))Error("QueueisEmpty");returnQ->rear-}ෙෙضԅزᔰxڠୌӞӻෛᴚੲൊفෛᕮᅩֵ҅ෛvoidEnterQueue(QItemx,Queue{qlinkᅩp->element=x;if(Q->front)Q->rear-}ෙෙᔰ҅زᴚḒڊݐ{qlinkp;QItemif(QueueEmpty(Q))Error("QueueisEmpty");return}所有运算时间复杂性均为O(n)时间方案队方案队首和队尾都不固队首和队尾位置均用游标加以指出队和入队操作均为O(1)时0 0 reara(n) reara(n) reara(n) a(n) a(n) ሾහᕟਫሿጱᴚڜQueueਧԎሾහᕟਫሿጱᴚڜQueueਧԎstructaque*Queue;typedefstructaque{4-QueueQueueInit(int{QueueQ=malloc(sizeof*return}0<=current<MaxSize-0֖ current=MaxSize-6-4ࢶ(b)҂intQueueEmpty(QueueQ){returnQ-ᕅਧᇫԅP71.-8(b)҅ၥᦶᇫԅP71.6-QItemQueueFirst(Queue{if(QueueEmpty(Q))Error("QueueisQ->queue[(Q->front+1)%Q-}ؙ QItemQueueLast(Queue{if(QueueEmpty(Q))Error("QueueisreturnQ->queue[Q-}ൊvoidEnterQueue(QItemx,Queue{ifError("Queueis}该位置修正为新的队首游标QItemDeleteQueue(Queue{if(QueueEmpty(Q))Error("QueuereturnQ->queue[Q->front];}所有运算时间复杂性均为度索方格C相邻而且可达的方格,若方格为 搜索结果二:搜索结果二:找不到与当前搜索方格C相邻而且可达的格直至找到目标方格b或者堆栈为空(ab间不存在布路径 startpinendpinstartpinendpinstartend11startend11startend2211222startend2211222startend33221122233startend33221122233startend4332211222343444startend4332211222343444startend5453322
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- YC/T 281-2026烟草企业质量管理小组活动现场评价准则
- 职业卫生评价考试题库及答案
- 预防接种人员技能测试题及答案
- 社区预防与保健测试题(有答案)
- 辽宁经济管理干部学院单招职业技能考试题库及答案
- 黑龙江民族职业学院单招职业适应性测试题库及答案
- 安徽省高职单招职业适应性测试考试题库及答案
- 2026年信阳职业技术学院单招职业适应性测试模拟试题及答案
- 2026年江苏省高职单招职业技能考试题库及答案
- 冲裁课程设计6
- 轮胎企业营销策略分析报告
- 重大舆情检讨书范文
- 盐酸普罗帕酮
- 银行校园招聘考试英语词汇(各种银行术语和句子全面介绍)
- 房屋安全鉴定服务投标方案(技术标)
- 中医特色护理在肾内科的应用
- 新能源项目典型案件争议解决实务-笔记
- 新人教版七年级上册英语全册课件(2024年新版教材)
- 2022年全国职业院校技能大赛赛项-ZZ-2022002农机维修赛项正式赛卷-植保无人机维修评分标准
- 呼吸道感染的抗病毒药物合理应用
- GB 40161-2021过滤机安全要求
评论
0/150
提交评论