欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    淮海工学院数据结构第二次实验.docx

    • 资源ID:4567616       资源大小:285.47KB        全文页数:27页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    淮海工学院数据结构第二次实验.docx

    1、淮海工学院数据结构第二次实验淮海工学院计算机科学系实验报告书课程名: 数据结构 题 目: 线性数据结构实验 (栈与队列及其应用)班 级: 软嵌151 学 号: 2015123352 姓 名: 韩吉 线性表算法实现与应用报告要求1目的与要求:1)掌握栈与队列的数据类型描述及特点;2)掌握栈的顺序和链式存储存表示与基本算法的实现;3)掌握队列的链式和循环存储表示与基本操作算法实现;4) 掌握栈与队列在实际问题中的应用和基本编程技巧;5)按照实验题目要求,独立完成实际程序的编写编写、调试和运行,并通过用例的运行过程抓获相关屏面验证程序设计的正确性;7)希望大家过一个丰富多彩的国庆节,抽出一定时间圆满

    2、完成实验,并于第6周周二以前按时提交实验报告,逾期按照旷交处理。2 实验内容或题目(一)必做题:1、实现顺序栈的创建(初始化)、压入(插入)操作(数据、弹出(删除)元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并给出栈的每次操作变化状态;2、实现链栈的创建(初始化)、压入(插入)、弹出(删除)操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),要求给出栈的操作变化过程;3、实现循环队列的创建、进队、出队等基本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;4、实现链式队列的创建、进队、出队等基

    3、本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;(注意:必做题需用一个主程序实现所有功能)(二)选做题(视自己能力而定,数量不限):任选下列一个或多个栈或队列应用源程序(已经发给学委),并阅读、调试和运行程序,而后给出程序功能分析和实例运行演示;1、实现表达式求值算法程序;2、用递归算法实现汉诺塔问题算法程序;3、使用循环队列实现打印杨辉三角形算法程序。3 实验步骤与源程序#include#include#include #define TRUE 1#define FALSE 0#define Stack_Size 50#define

    4、 MAXSIZE 5 void mainmenu();/*/*顺序栈*/typedef struct int elemStack_Size; int top;SeqStack;/*链栈*/typedef struct node int data; struct node *next;LinkStackNode;/*循环队列*/typedef struct int elementMAXSIZE; int front; int rear;SeqQueue;/*链式队列*/typedef struct Node int data; struct Node *next;LinkQueueNode;ty

    5、pedef struct LinkQueueNode *front; LinkQueueNode *rear;LinkQueue;/*/*顺序栈*/*构造一个空栈S*/void InitStack(SeqStack *S) S-top = -1;/*进栈*/int Push(SeqStack *S,int x) if(S-top=(Stack_Size-1) return(FALSE); /*栈已满*/ S-top+; S-elemS-top=x; return(TRUE);/*出栈*/int Pop(SeqStack *S,int *x) /* 将栈S的栈顶元素弹出,放到x所指的存储空间中

    6、*/ if(S-top=-1) /*栈为空*/ return(FALSE); else *x=S-elemS-top; S-top-; /* 修改栈顶指针 */ return(TRUE); /*取栈顶元素*/int GetTop(SeqStack *S, int *x) /* 将栈S的栈顶元素弹出,放到x所指的存储空间中,但栈顶指针保持不变 */ if(S-top=-1) /*栈为空*/ return(FALSE); else *x = S-elemS-top; return(TRUE); /*/*链栈*/*初始化*/void InitStack1(LinkStackNode *top) /构

    7、造一个空栈 top = (LinkStackNode *)malloc(sizeof(LinkStackNode); if(!top) printf(OVERFLOWn); top = NULL; /*进栈操作。*/int Push1(LinkStackNode *top, int x)/* 将数据元素x压入栈top中 */ LinkStackNode *temp; temp=(LinkStackNode *)malloc(sizeof(LinkStackNode); if(temp=NULL) return(FALSE); /* 申请空间失败 */ temp-data=x; temp-nex

    8、t=top-next; top-next=temp; /* 修改当前栈顶指针 */ return(TRUE);/*出栈操作。*/int Pop1(LinkStackNode *top, int *x) /* 将栈top的栈顶元素弹出,放到x所指的存储空间中 */ LinkStackNode * temp; temp=top-next; if(temp=NULL) /*栈为空*/ return(FALSE); top-next=temp-next; *x=temp-data; free(temp); /* 释放存储空间 */ return(TRUE);/*/*循环队列*/void InitQue

    9、ue(SeqQueue *Q) /* 将*Q初始化为一个空的循环队列 */ Q-front=Q-rear=0;int EnterQueue(SeqQueue *Q,int x) /*将元素x入队*/ if(Q-rear+1)%MAXSIZE=Q-front) /*队列已经满了*/ return(FALSE); Q-elementQ-rear=x; Q-rear=(Q-rear+1)%MAXSIZE; /* 重新设置队尾指针 */ return(TRUE); /*操作成功*/int DeleteQueue(SeqQueue *Q,int *x) /*删除队列的队头元素,用x返回其值*/ if(Q

    10、-front=Q-rear) /*队列为空*/ return(FALSE); *x=Q-elementQ-front; Q-front=(Q-front+1)%MAXSIZE; /*重新设置队头指针*/ return(TRUE); /*操作成功*/*/*链式队列*/int InitQueue1(LinkQueue *O) /* 将Q初始化为一个空的链队列 */ O-front=(LinkQueueNode *)malloc(sizeof(LinkQueueNode); if(O-front!=NULL) O-rear=O-front; O-front-next=NULL; return(TRU

    11、E); else return(FALSE); /* 溢出!*/int EnterQueue1(LinkQueue *O,int x) /* 将数据元素x插入到队列Q中 */ LinkQueueNode *NewNode; NewNode=(LinkQueueNode *)malloc(sizeof(LinkQueueNode); if(NewNode!=NULL) NewNode-data=x; NewNode-next=NULL; O-rear-next=NewNode; O-rear=NewNode; return(TRUE); else return(FALSE); /* 溢出!*/i

    12、nt DeleteQueue1(LinkQueue *O, int *x) /* 将队列Q的队头元素出队,并存放到x所指的存储空间中 */ LinkQueueNode *p; if(O-front=O-rear) return(FALSE); p=O-front-next; O-front-next=p-next; /* 队头元素p出队 */ if(O-rear=p) /* 如果队中只有一个元素p,则p出队后成为空队 */ O-rear=O-front; *x=p-data; free(p); /* 释放存储空间 */ return(TRUE); /*/void mainmenu1() int

    13、 chioce; int m; int x1, x2; SeqStack s; while(chioce) printf( * 请输入你的选择 *n); printf( * 1:初始化操作 *n); printf( * 2:进栈操作 *n); printf( * 3:出栈操作 *n); printf( * 4:取栈顶元素 *n); printf( * 5:返回主菜单 *n); printf(请输入你的选择:); scanf(%d, &chioce); switch(chioce) case 1: InitStack(&s); printf(初始化完成!n); break; case 2: pr

    14、intf(输入进栈元素:); scanf(%d, &m); if(Push(&s,m) printf(进栈成功!n); else printf(栈已满!n); break; case 3: if(Pop(&s,&x1) printf(出栈元素:%dn, x1); else printf(栈为空!n); break; case 4: if(GetTop(&s,&x2) printf(栈顶元素:%dn, x2); else printf(栈为空!n); break; case 5: printf(nnnn); system(cls); mainmenu(); break; default: pri

    15、ntf(输入有误!n); for(int i = 2; i 0; i-) printf(请等待%d秒后重新输入!n,i); Sleep(1000); system(cls); mainmenu1(); break; void mainmenu2() int chioce2; int x; int x1; LinkStackNode top; while(chioce2) printf( * 请输入你的选择 *n); printf( * 1:初始化操作 *n); printf( * 2:进栈操作 *n); printf( * 3:出栈操作 *n); printf( * 4:返回主菜单 *n);

    16、printf(请输入你的选择:); scanf(%d, &chioce2); switch(chioce2) case 1: InitStack1(&top); printf(初始化完成!n); break; case 2: printf(输入进栈元素:); scanf(%d, &x); if(Push1(&top,x) printf(进栈成功!n); else printf(栈已满!n); break; case 3: if(Pop1(&top,&x1) printf(出栈元素:%dn, x1); else printf(栈为空!n); break; case 4: printf(nnnn)

    17、; system(cls); mainmenu(); break; default: printf(输入有误!n); for(int i = 2; i 0; i-) printf(请等待%d秒后重新输入!n,i); Sleep(1000); system(cls); mainmenu2(); break; void mainmenu3() int chioce3; int x; int x1; SeqQueue Q; while(chioce3) printf( * 请输入你的选择 *n); printf( * 1:初始化操作 *n); printf( * 2:进栈操作 *n); printf

    18、( * 3:出栈操作 *n); printf( * 4:返回主菜单 *n); printf(请输入你的选择:); scanf(%d, &chioce3); switch(chioce3) case 1: InitQueue(&Q); printf(初始化完成!n); break; case 2: printf(输入进栈元素:); scanf(%d, &x); if(EnterQueue(&Q,x) printf(进栈成功!n); else printf(栈已满!n); break; case 3: if(DeleteQueue(&Q,&x1) printf(出栈元素:%dn, x1); els

    19、e printf(栈为空!n); break; case 4: printf(nnnn); system(cls); mainmenu(); break; default: printf(输入有误!n); for(int i = 2; i 0; i-) printf(请等待%d秒后重新输入!n,i); Sleep(1000); system(cls); mainmenu3(); break; void mainmenu4() int chioce4; int x; int x1; LinkQueue O; while(chioce4) printf( * 请输入你的选择*n); printf(

    20、 * 1:初始化操作 *n); printf( * 2:进栈操作 *n); printf( * 3:出栈操作 *n); printf( * 4:返回主菜单 *n); printf(请输入你的选择:); scanf(%d, &chioce4); switch(chioce4) case 1: InitQueue1(&O); printf(初始化完成!n); break; case 2: printf(输入进栈元素:); scanf(%d, &x); if(EnterQueue1(&O,x) printf(进栈成功!n); else printf(栈已满!n); break; case 3: if

    21、(DeleteQueue1(&O,&x1) printf(出栈元素:%dn, x1); else printf(栈为空!n); break; case 4: printf(nnnn); system(cls); mainmenu(); break; default: printf(输入有误!n); for(int i = 2; i 0; i-) printf(请等待%d秒后重新输入!n,i); Sleep(1000); system(cls); mainmenu4(); break; void mainmenu() int chioce1; printf(* 主菜单 * n); printf(

    22、 * 1:顺序栈操作 * n); printf( * 2:链栈操作 * n); printf( * 3:循环队列 * n); printf( * 4:链式队列 * n); printf( * 0:退出操作 * n); printf(请输入你的选择:); scanf(%d, &chioce1); switch(chioce1) case 1: mainmenu1(); break; case 2: mainmenu2(); break; case 3: mainmenu3(); break; case 4: mainmenu4(); system(cls); break; case 0: exit(0); break; default: printf(输入有误!n); for(int i = 3; i 0; i-) printf(请等待%d秒后重新输入!n,i); Sleep(1000); system(cls); mainmenu(); break; void main() system(color 0); system(color bc); mainmenu();杨辉三角:#include seq


    注意事项

    本文(淮海工学院数据结构第二次实验.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开