- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3、栈和队列
栈的顺序存储结构方法一(书上没有) C语言描述: 类似于线性表的顺序存贮结构 #define MAXSIZE n /*n为栈中数据元素个数的最大可能值*/ typedef struct { } sqstack; 初始化栈算法 void Initstack(sqstack s) { } 进栈算法 status push(sqstack s, elemtype x) { if (s.top=MAXSIZE-1) return ERROR; //栈满,上溢 else { s.top++; s .stack[top]=x; return OK; } } //push 出栈算法 status pop(sqstack s, elemtype e) { if (s. top0) return ERROR; //栈空,下溢 else { e= s . stack[top]; s.top--; return OK; } } // pop 取栈顶元素算法 status getTop(sqstack s, elemtype e) { if (s . top0) return NULL; //栈空,返回空值 else { e= s . stack[top]; return OK; } } // getTop 判栈空算法 status empty (sqstack s) { if (s . top0) return TRUE; //栈空,返回TRUE else { return FALSE; } } // empty 顺序栈判满、判空条件 二、 栈的链式存贮结构(P48,没实现) 当最大需要容量事先不能估计时,采用链式存贮结构是有效的方法,链栈的操作只能在栈顶处进行。 数制转换的完整程序 例四、迷宫求解 栈的应用 上机题讲解 队列是只允许在表的一端进行插入, 在另一端删除元素的线性表; 允许插入的一端称为队尾(rear); 允许删除的一端称为队头(front); 假设队列为 Q=(a1,a2,…,an),则a1是队头元素,an是队尾元素; 队列中的元素是按照a1,a2,…,an的顺序进入的,退出队列也只能按照这个次序依次退出; 当队列中没有元素时称为空队列; 队列是一种“先进先出”的线性表,简称FIFO表。 C语言描述: #define MAXQSIZE n typedef struct { elemtype queue[MAXQSIZE];//静态分配 int front , rear ; } sequeuetp; 问题:在非循环队列中 假溢出 rear=maxsize不一定说明队列中有maxsize个元素,如上例实际上还有可用空间,称假溢出; 解决“假溢出”的办法一般有两种: 将整个队列左移,使队列的第一个元素重新位于queue[0],且置front= 0;但会引起大量元素的移动,增加算法的运行时间; 设想queue[0]接在queue[maxsize -1]之后,使一维数组queue成为一个首尾相接的环,使得: if Q.rear +1 =maxsize Q.rear=0; 结点结构: //定义链队列中的一个结点结构 typedef struct qnode { elemtype data ; struct qnode * next ; } queueptr; 销毁链队列算法 Stat
您可能关注的文档
最近下载
- 医师访谈记录.pdf VIP
- Unit 4 School Life 第3-4课时Reading and Rriting 课件 中职高一学年英语高教版基础模块1.ppt
- 最新中药饮片质量标准通则(试行).doc VIP
- 医学临床三基(输血学)-输血免疫学基础(精选试题).pptx VIP
- 我们的大脑的教学课件.ppt VIP
- 洞察世间智慧:哲学伴随我成长课件.ppt VIP
- 超星网课《汽车之旅》超星尔雅答案2023章节测验答案.doc VIP
- 老年人继承法培训课件.pptx VIP
- 科学湘科版二年级上册全册课件.pptx
- 第7课全球航路的开辟和欧洲早期殖民扩张【中职专用】《世界历史》(高教版2023基础模块).pptx VIP
文档评论(0)