已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法算法 创建空栈创建空栈 pseqstack createemptystack_seq( int m ) pseqstack pastack; pastack = new struct seqstack; if (pastack!=null) pastack-s = new datatypem; if (pastack-s!=null) pastack-maxnum = m; pastack-t=-1; return (pastack); else delete pastack; return null: 算法算法 判断栈是否为空栈判断栈是否为空栈 int isemptystack_seq( pseqstack pastack ) return ( pastack-t = -1 ); 算法算法 4.1 进栈进栈 void push_seq( pseqstack pastack, datatype x ) /* 在栈中压入一元素在栈中压入一元素x */ if( pastack-t = pastack-maxnum - 1 ) printf( “overflow! n“ ); else pastack-t = pastack-t + 1; pastack-spastack-t = x; 算法算法 4.2 出栈出栈 void pop_seq( pseqstack pastack ) /* 删除栈顶元素删除栈顶元素 */ if (pastack-t = -1 ) printf( “underflow!n“ ); else pastack-t = pastack-t - 1; 算法算法 4.3 取栈顶元素取栈顶元素 datatype top_seq( pseqstack pastack ) /当当pastack所指的栈不为空栈时,求栈顶元素的值所指的栈不为空栈时,求栈顶元素的值 return (pastack-spastack-t); 算法算法 4.4 创建一个空链栈创建一个空链栈 plinkstack createemptystack_link(void) plinkstack plstack; plstack = new struct linkstack; if (plstack != null) plstack-top = null; else printf(“out of space! n“); return (plstack); 算法算法 4.5 判断栈是否为空栈判断栈是否为空栈 int isemptystack_link( plinkstack plstack ) return (plstack-top = null); 算法算法 4.6 进栈进栈 void push_link( plinkstack plstack, datatype x ) /* 在栈中压入一元素在栈中压入一元素x */ pnode p; p = (pnode)malloc( sizeof( struct node ) ); if ( p = null ) printf(“out of space!n“); else p-info = x; p-link = plstack-top; plstack-top = p; 算法算法 4.7 出栈出栈 void pop_link( plinkstack plstack ) pnode p; if( isemptystack_link( plstack ) ) printf( “empty stack pop.n“ ); else p = plstack-top; plstack-top = plstack-top-link; free(p); 算法算法 4.8 取栈顶元素取栈顶元素 datatype top_link( plinkstack plstack ) /* 对非空栈求栈顶元素对非空栈求栈顶元素 */ if (pastack-top=null) couttop-info); int main() int m,n; . int i; int x,y; 3: 2: 1: op1 op2 struct seqqueue int maxnum; int f,r; datatype *q; ; typedef struct seqqueue *pseqqueue; pseqqueue paqu; 算法算法 4.14 出队出队 void dequeue_seq( pseqqueue paqu ) /* 删除队列头部元素删除队列头部元素 */ if( paqu-f = paqu-r ) printf( “empty queue.n“ ); else paqu-f = (paqu-f + 1) % paqu-maxnum; 算法算法 4.15 取队列的头元素取队列的头元素 datatype frontqueue_seq( pseqqueue paqu ) /* 对非空队列对非空队列 ,求队列头部元素求队列头部元素 */ if( paqu-f = paqu-r ) printf( “empty queue.n“ ); else return (paqu-qpaqu-f); 算法算法 4.17 判断链接表示队列是否为空队列判断链接表示队列是否为空队列 int isemptyqueue_link( plinkqueue plqu ) return (plqu-f = null); 算法算法 4.18 入队入队 void enqueue_link( plinkqueue plqu, datatype x ) pnode p; p = (pnode )malloc( sizeof( struct node ) ); if ( p = null ) printf(“out of space!“); else p-info = x; p-link = null; if (plqu-f = null) plqu-f = p; else plqu-r-link = p; plqu-r = p; 算法算法 4.19 出队出队 void dequeue_link( plinkqueue plqu ) pnode p; if( plqu-f = null ) printf( “empty queue.n “ ); else p = plqu-f; plqu-f = plqu-f-link; free(p); 算法算法 4.20 取队列头部结点的值取队列头部结点的值 datat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全球旅游业的区域合作与发展
- 福州市人民医院烧伤病房感染控制管理考核
- 吉安市中医院疑难血型血清学问题解决能力专家评估
- 宁波市人民医院异位妊娠B超诊断考核
- 联欢六一活动方案
- 苏州专业定制活动方案
- 纪委廉政活动方案
- 盐城市中医院喉气管重建术专项考核
- 艺术展演活动方案
- 美容六月活动方案
- 国开电大2025秋《形势与政策》大作业参考答案
- 2025网格员招聘笔试必考题库(含答案)
- 2025年心血管内科心脏介入治疗技能考核答案及解析
- 2025公安招聘辅警考试笔试题及答案(完整版)
- 写给物业管理的装修设计说明书
- 2025秋期版国开电大专科《政治学原理》一平台形考任务一至四在线形考试题及答案
- 美国建筑文化介绍
- 记念刘和珍君:课文内容深层理解教案
- 新时代乡村治理培训课件
- 社会责任管理办法模板
- (2025秋新版)外研版八年级英语上册全册教案
评论
0/150
提交评论