下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
栈和队列实现回文栈和队列实现回文栈和队列实现回文栈和队列的应用题目要求:输入一段字符串,判断字符串是否是回文。回文字符串的定义:字符串的顺序输入和逆序输出内容完全一样.要求出入一段字符串,以‘#’为结束符;判断是否是回文,并输出;实验目的:通过做回文的题,来熟悉栈和队列的结构以及内容,最终达到掌握实验步骤定义栈的结构体:typedefstruct{//栈结构的定义 int*top; int*base; intstacksize;}sqstack;定义队列的结构体:typedefstructqueue{//队列的结构体定义 intdata; structqueue*next;}queue,*que;typedefstruct{ quefront;//队列的头指针 querear;//队列的尾指针}Q;相关函数:voidinistack(sqstack&s)//初始化一个空栈booljust(sqstack&s)//判断栈是否为空,返回bool类型voidpush(sqstack&s,inte)//入栈charpop(sqstack&s,int&e)//出栈,返回char类型voidinitQ(Q&q)//初始化一个空队列pushq(Q&q,inte)//入队charpopq(Q&q,int&e)//出队,返回char类型总体结构图主界面(voidmain)主界面(voidmain)栈的定义队列的定义初始化空栈元素入栈元素出栈判断栈是否为空初始化空队列元素入队元素出队是否相等YesNo该字符串为回文该字符串不是回文运行结果分析完成对字符串的判断以及输出;程序清单#include<iostream。h>#include<malloc.h>typedefstruct{//栈结构的定义 int*top; int*base; intstacksize;}sqstack;voidinistack(sqstack&s)//初始化一个空栈{ s.base=(int*)malloc(100*sizeof(sqstack)); if(!s。base) { cout<〈"分配失败"〈〈endl; } s。top=s.base; s.stacksize=100;}booljust(sqstack&s){ boolss=true; if(s.top==s。base) ss=false; else ss=true; returnss;}voidpush(sqstack&s,inte)//入栈{ if(s。top-s.base〉=s。stacksize) { s.base=(int*)realloc(s.base,(s.stacksize+10)*sizeof(sqstack)); s。top=s.base+s.stacksize; s.stacksize+=10; } *s。top++=e;}charpop(sqstack&s,int&e)//出栈{ if(s.base==s。top) { cout<<"栈已经为空”<〈endl; } e=*--s.top; returne;}typedefstructqueue{//队列的结构体定义 intdata; structqueue*next;}queue,*que;typedefstruct{ quefront; querear;}Q;voidinitQ(Q&q)//初始化一个空队列{ q.front=q.rear=(queue*)malloc(sizeof(queue)); if(!q。front) { cout<<”分配失败”〈〈endl; } q.front—〉next=NULL;}voidpushq(Q&q,inte)//入队{ queue*p; p=(queue*)malloc(sizeof(queue)); p—>data=e; p—〉next=NULL; q.rear—〉next=p; q.rear=p;}charpopq(Q&q,int&e)//出队{ queue*t; if(q。front==q.rear) { cout〈<”队列已经为空"〈<endl; } t=(queue*)malloc(sizeof(queue)); t=q。front->next; e=t-〉data; q。front—>next=t-〉next; if(q.rear==t) q。rear=q。front; deletet; returne;}voidmain(){ charch;inte,k; boolss=true; sqstacks; Qq; inistack(s); initQ(q); cout<<"输入字符以‘#’为结束符:"<<endl; cin>>ch; while(ch!='#’) { push(s,ch); pushq(q,ch); cin〉〉ch; } while(just(s)) { pop(s,e); popq(q,k); i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医护理促进骨科患者功能恢复
- 社区护理学(成教专科)第10章 社区救护
- 一例急性心梗合并室壁瘤及心衰患者的护理查房
- 初中八年级科学《生态系统的基石:碳循环与氧循环的协同机制》教案
- 材料科学基础:晶体结构对称性(本科二年级)教学设计
- 小儿肺炎的护理学术交流与合作
- 中医不寐护理方法概述
- 初中八年级历史《万水千山只等闲:中国工农红军长征》教学设计
- 事件监听器在大数据安全中的应用
- 初中八年级道德与法治《用心交友:构建真挚友谊圈》教学设计
- 2026外研版(三起)三年级下册英语期末《语法》专项训练
- 2026年软考-多媒体应用设计师历年真题
- 骨科疼痛患者的疼痛护理人文关怀
- 护理不良事件预防与风险管理
- 社保待遇追缴工作方案
- 雨课堂学堂在线学堂云《兽医外科学与手术学(扬州)》单元测试考核答案
- GB/T 47157-2026芹菜等级规格
- 2026年党委(党组)理论学习中心组试题及答案
- 物理 第九章 浮力课件2025-2026学年沪科版八年级物理全册
- 2025至2030中国洗碗机行业市场调研及增长潜力预测与投资可行性研究报告
- 军用关键软硬件自主可控产品名录(2025年v1版)
评论
0/150
提交评论