




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数学和信息技术大学20162017(下)年级系科专业2015级数据结构实验报告3学号:名字:王继初实验名称堆栈的应用完成时间2017.04.01一.实验目的1.了解堆栈的概念和数据结构的特性。2.把握两个顺序堆栈孔刘存储空间的概念。3.熟练掌握使用顺序堆栈实现堆栈的基本运算,特别注意堆栈满的车库空条件及其说明方法。4.提高编辑和调试c语言程序的能力。二、实验要求1.介面设计必须熟悉2.使用顺序堆栈完成。注意c类和c类的转换。机器试运行通过,仔细填写实验报告。三、实验原理堆叠是两个茄子的特殊线性表格。堆叠是只能在表格一端插入和删除的线性表格,也称为后进先出表格。堆栈是线性表的特殊情况,因此可以使
2、用顺序存储结构和链存储结构。堆栈的顺序存储结构称为顺序堆栈,堆栈的链存储结构称为链堆栈。顺序存储结构可以作为一维数组实现,链存储结构可以作为指针实现。四。实验内容使用顺序堆栈中的运算,将任意十进制整数转换为2到9之间的任意进制数并输出。实验过程:/*注:牙齿程序实施和应用堆栈操作*/#include#include#include#include#include#define STACK_INIT_SIZE 100#define STACKINCREMENT 10Typedef int SElemTypeTypedef int QElemType/*堆栈中的存储结构*/Typedef stru
3、ctSElemType * base/*堆栈低指针*/SElemType * top/*堆栈顶部指针*/Int stacksize/*当前分配给堆栈的所有空间,不是已用空间长度*/ SqStack/*开始* * * * * * * * * * * * * *队列中存储结构* * * * * * * * * * * * * * * * * * * * * * * *。Typedef struct QNodeQElemType dataStruct QNode * nextQNode,* QueuePtrTypedef structQueuePtr frontQueuePtr rear LinkQ
4、ueue/* * * * * * * * * * * * * * *队列中的存储结构* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。/*函数宣言*/selem type GetTop(sq stack * S);Void推送(SqStack *S,selem type e);bool SEmpty(sq stack * S);SElemType Pop(sq stack * S);void main();/匹配括号-Void match(SqStack *S)char str20;Int i
5、=0,flagfflush(stdin);printf( please enter a string : );scanf(“% s”,str);While(stri)!=0flag!=0)交换机(str I)盘柜(:推(s,();布列克;盘柜):If(*(S-top-1)=()flag=1;流行(s);else flag=0;布列克;盘柜:推(s,);布列克;Case :if(*(S-top-1)=)flag=1;流行(s);else flag=0;布列克;盘柜:推(s,);布列克;Case :if(*(S-top-1)=)flag=1;流行(s);else flag=0;布列克;defaul
6、t 3360 flag=0;布列克;I;if(flag=1)(SEmpty(S)=0)Printf(n success! n );Else printf(n error! n );/匹配括号-/反转QueueLinkQueue * InitQ()link queue * Q;q=(link queue *)malloc(size of(link queue);q-front=q-rear=(queue ptr)malloc(size of(qnode);If(!Q-front)退出(1);q-front-next=NULL;Printf(Successful Q!);return Q;Void
7、 enq(链接queue * q,qelemtype e)/入队queue ptr p;p=(queue ptr)malloc(size of(qnode);If(!p)退出(1);p-data=e;p-next=NULL;q-rear-next=p;q-rear=p;Int DeQ(LinkQueue *Q) /取消伫列int e;queue ptr p;if(Q-front=Q-rear)return 0;Elsep=Q-front-next;e=p-data;q-front-next=p-next;if(Q-rear=p)Q-rear=Q-front;自由(p);return e;Voi
8、d algo3(链接queue * q,sqstack * s)/反转int d;While(!(Q-front=Q-rear)d=DeQ(Q);推(s,d);While(SEmpty(S) EnQ(Q,Pop(S);Voidtes (linkqueue * q,sqstack * s)/逆周函数Int i、e、n;Printf(n要输入的数据栏数为);scanf(“% d”,n);Printf(n反向转换数据输入:);for(I=0);Ifront=Q-rear)Printf(=,DeQ(Q);printf(“ n”);free(Q);/反转Queue/回文-Void Huiwen(链接qu
9、eue * q,sqstack * s)char str20;Int i=0,flagfflush(stdin);printf( please enter a string : );scanf(“% s”,str);While(stri)!=0)推(s,strI);EnQ(Q,strI);I;While(SEmpty(S)flag)!=0)if(DeQ(Q)=Pop(S)flag=1;else flag=0;If(flag=1)Printf(n success! n );Else printf(n error! n );/回文-SqStack * InitStack() /*1。堆栈初始化*/
10、sq stack * S;s=(sq stack *)malloc(sizeof(sq stack);s-base=(selem type *)malloc(stack _ init _ size * sizeof(selem type);If(!S |!S-base)退出(1);S-top=S-base;s-stacksize=STACK _ INIT _ SIZE;return S;Bool SEmpty(SqStack *S) /*2。堆叠null */if(S-top=S-base)return 0;else return 1;/*1表示堆栈不为空。*/Voidpush (sqstac
11、k * s,s elemtype e)/* 3。堆栈*/If(S-top-S-base=S-stacksize)s-base=(selem type *)realloc(s-base,(s-stack size stack increment)* size of(s elem type)If(!S-base)退出(1);printf(“ n空间不足,打开新空间成功! n );S-top=S-base S-stacksize;s-stack size=stack increment;* S-top=e;SElemType Pop(SqStack *S) /*4。堆栈*/If(S-top=S-ba
12、se)return 0;printf( nthe sequence stack is empty!);else return *(-s-top);Void显示器(sqstack * s)/* 5。打印*/int e;SqStack * T;t=init stack();/*1 .新建堆栈T*/While(SEmpty(S)e=Pop(S);推(t,e);/*2 .堆叠T*/Printf(,e);/*堆栈不为空时按顺序打印*/While(SEmpty(T) Push(S,Pop(T);/*3 .将堆栈t的元素堆栈合并到堆栈s */free(T);printf(“ n”);Int StackLen
13、gth(SqStack *S) /*6。统计堆栈长度*/printf(“ n统计堆栈的长度为%dn”,(S-top-S-base);return(S-top-S-base);Voidsearch (sqstack * s,selemtype e)/* 7。查找*/Int count=0,flag=0;SqStack * T;t=init stack();While(SEmpty(S)If(e=GetTop(S)计数;flag=1;Printf(n%d元素发现:%dn ,count,e);推(t,pop(s);While(SEmpty(T) Push(S,Pop(T);free(T);if(flag=0)printf(“ n找不到元素:%dn”,e);Void modify (sqstack * s,s elemtype e)/* 8。修改*/Int e1,count=0,flag=0,a;SqStack * T;t=init stack();While
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 33339-2025全钒液流电池系统测试方法
- GB/T 45881-2025农业社会化服务第三方农产品追溯服务规范
- GB/T 32319-2025金融服务参考数据银行产品服务(BPoS)描述规范
- 2025届广东省中山市物理高一第二学期期末复习检测模拟试题含解析
- 江苏省徐州市睢宁县第一中学2025年物理高二第二学期期末学业质量监测模拟试题含解析
- 2025年福建省福州琅岐中学高一物理第二学期期末教学质量检测试题含解析
- 宠物疾病诊断与防治课件
- 山东省青州第二中学2025年物理高一第二学期期末达标测试试题含解析
- 重庆大学城第一中学校2025届高一物理第二学期期末统考模拟试题含解析
- 2025版特色咖啡馆租赁合同及特色咖啡豆采购协议
- 《经口鼻吸痰技术》课件
- 2025四川成都环境投资集团限公司应届毕业生招聘50人管理单位笔试遴选500模拟题附带答案详解
- 《尿路感染诊治指南》课件
- 特征值优化设计-洞察分析
- 市场营销策划岗位招聘笔试题与参考答案(某大型央企)
- 2024年高考英语新课标1卷读后续写教学设计
- 市医院开展“小金库”专项治理工作方案
- PDCA提高便秘患者肠镜检查肠道准备合格率
- 淮南新东辰控股集团有限责任公司招聘笔试题库2024
- 03D201-4 10kV及以下变压器室布置及变配电所常用设备构件安装
- 人民网删除稿件(帖文)申请登记表
评论
0/150
提交评论