




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡村老人阅读题目及答案
- 现代刑侦推理题目及答案
- 葡萄糖知识培训课件
- 2024译林版八年级英语上册Unit3 单元测试卷及答案(含两套题)
- 2025计时工的劳动合同
- 物权法自考试题及答案
- 2025电气设备采购合同
- 新实英语综合教程(第二册) 课件 U6 China and the World
- 营销师操作规程培训课件
- 2025联营企业合作协议
- 2025届江苏省淮安市实验初级中学七下数学期末检测模拟试题含解析
- 北师大计算机试卷及答案
- 2025年新会计法培训课件
- 环保机构舆情处理机制流程
- 皮划艇旅游线路行业深度调研及发展战略咨询报告
- 加油站消防安全管理制度
- 2025-2030中国光保真度(Li-Fi)行业市场发展趋势与前景展望战略研究报告
- 全册知识点(素材)六年级上册科学青岛版
- 学校食堂管理工作资料汇编
- 心衰患者的麻醉处理1例课件
- 电竞酒店服务礼仪与职业素养培训
评论
0/150
提交评论