已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构与算法分析 实验二实验报告 姓名:XXXXXXXXXX学号:XXXXXXXXXX班级:CCCCCCCCCC XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC 实验二(1) 用链表实现栈一、实验描述用链表实现一个栈。2、 实验设计1 进栈(PUSH)算法 若TOPn时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作); 置TOP=TOP+1(栈指针加1,指向进栈地址); S(TOP)=X,结束(X为新进栈的元素); 2 退栈(POP)算法 若TOP0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作); X=S(TOP),(退栈后的元素赋给X): TOP=TOP-1,结束(栈指针减1,指向栈顶)。3、 实验实现代码#include #include #define DataType int#define MAXSIZE 1024typedef structDataType dataMAXSIZE;int top;SeqStack; /栈初始化 SeqStack *Init_SeqStack() XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC SeqStack *s;s=(SeqStack *)malloc(sizeof(SeqStack); if(!s)printf(空间不足n);return NULL;elses-top=-1;return s; /判栈空int Empty_SeqStack(SeqStack *s)if(s-top= -1)return 1;elsereturn 0;/入栈int Push_SeqStack(SeqStack *s,DataType x) if(s-top=MAXSIZE-1)return 0;/栈满不能入栈elses-top+;s-datas-top=x;return 1; XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC /出栈int Pop_SeqStack(SeqStack *s,DataType *x)if(Empty_SeqStack(s)return 0;/栈空不能出栈else*x=s-datas-top;s-top-;return 1;/栈顶元素存入*x,返回/取栈顶元素DataType Top_SeqStack(SeqStack *s)if(Empty_SeqStack(s)return 0;/栈空elsereturn s-datas-top;int Print_SeqStack(SeqStack *s)int i;printf(当前栈中的元素:n);for(i=s-top;i=0;i-)printf(%3d,s-datai);printf(n);return 0; XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC int main()SeqStack *L;int n,num,m;int i;L=Init_SeqStack();printf(初始化完成n);printf(栈空:%dn,Empty_SeqStack(L);printf(请输入入栈元素个数:n);scanf(%d,&n);printf(请输入要入栈的%d个元素:n,n);for(i=0;in;i+) scanf(%d,&num);Push_SeqStack(L,num);Print_SeqStack(L);printf(栈顶元素:%dn,Top_SeqStack(L);printf(请输入要出栈的元素个数(不能超过%d个):n,n);scanf(%d,&n);printf(依次出栈的%d个元素:n,n);for(i=0;in;i+)Pop_SeqStack(L,&m);printf(%3d,m);printf(n);Print_SeqStack(L);printf(栈顶元素:%dn,Top_SeqStack(L);return 0; XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC 4、 实验结果 XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC 实验二(2) 用链表实现队列一、实验描述用链表实现一个队列。2、 实验设计队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将最后被删除的元素,因此队列又称为“先进先出”(FIFOfirst in first out)的线性表。 队列空的条件:front=rear 队列满的条件: rear = MAXSIZE三、实验实现代码#include #include typedef struct QNode int data; struct QNode* next;QNode;typedef struct QList struct QNode* front; struct QNode* end;QList;void InitQL(QList* QL) if(QL=NULL) QL=(QList*)malloc(sizeof(QList); QL-front=NULL; XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC QL-end=NULL;void InsertQL(QList* QL,int value) QNode* p; p=(QNode*)malloc(sizeof(QNode); p-data=value; if(QL-front=NULL) QL-front=p; QL-end=p; p-next=NULL; else p-next=NULL; QL-end-next=p; QL-end=p; int DeleteQL(QList* QL) QNode *p; int res; if(QL-front=NULL) return -1; res=QL-front-data; p=QL-front; if(QL-front-next=NULL) QL-front=NULL; QL-end=NULL; else QL-front=p-next; free(p); XXXXXXXXXXX 数据结构实验报告实验二 CCCCCCCCCCCCCC return res;void Print(QList* QL) QNode *p; p=QL-front; while(p) printf(%dt,p-data); p=p-next; int main() QList *ML; int i,val; ML=(QList*)malloc(sizeof(QList); InitQL(ML); for(i=0;i34;i+) InsertQL(ML,i*8+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运输企业安全设施设备维护保养制度
- 2026定向土官的面试题及答案
- 2026年四川省德阳市高考地理二诊试卷
- 高档雪花牛肉养殖基地配套设施项目可行性研究报告模板-立项备案
- 10万吨镁基新材料全产业链项目可行性研究报告模板-申批备案
- 美容业安全防护操作手册
- 公司员工仪容仪表与言行规范手册
- 企业设备设施安全风险管控手册
- 皮肤病门诊消毒隔离工作指南 (标准版)
- 教育信息化与教师综合素质提升三人答案
- 特种气体泄漏专项应急预案
- 2026年哈尔滨市124中学八年级下学期期中历史试题及答案
- 胸腺瘤合并重症肌无力围手术期护理
- 【地理】 东南亚第2课时课件-2025-2026学年湘教版(2024)七年级地理下学期
- 房建装配式灌浆监理实施细则
- 济南国际机场股份有限公司招聘笔试题库2026
- 2026年医药行业财务招聘常见问题与答案
- 2026年高考数学全国卷试题(附答案)
- 2025年新疆辅警考试公安基础知识考试真题库及参考答案
- 高中英语培训课件资源库
- 2025年下半年九江市事业单位“才汇九江”高层次人才公开招聘笔试备考公基题库带答案解析
评论
0/150
提交评论