1 / 20
文档名称:

数据结构实验报告(C语言)(强力推荐).doc

格式:doc   大小:341KB   页数:20
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告(C语言)(强力推荐).doc

上传人:在水一方 2019/5/1 文件大小:341 KB

下载得到文件列表

数据结构实验报告(C语言)(强力推荐).doc

相关文档

文档介绍

文档介绍:数据结构实验实验内容和目的:掌握几种基本的数据结构:集合、线性结构、树形结构等在求解实际问题中的应用,以及培养书写规范文档的技巧。学习基本的查找和排序技术。让我们在实际上机中具有编制相当规模的程序的能力。养成一种良好的程序设计风格。 实验教材:数据结构题集(C语言版)清华大学出版社2007年实验项目:实验一、栈和循环队列㈠、实验内容:栈掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。本程序采用的是链栈结构,具有初始化一个栈、PUSH、POP、显示所有栈里的元素四个功能。循环队列掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,学会循环队列的实现,以便在实际问题背景下灵活运用。本程序具有初始化一个队列、入队、出队、显示队列的所有元素、队列长度五个功能。㈡、实验代码栈程序代码:#include<>#include<>#defineStack_Size6#defineERROR0#defineOK1typedefintSElemType;typedefstructSNode{ SElemTypedata; structSNode*next;}SNode,*LinkStack;intCreatTwo(LinkStack&head,intn){ inti; SNode*p; head=(LinkStack)malloc(sizeof(SNode)); head->next=NULL; printf("请输入数据(数字):\n"); for(i=n;i>0;--i) { p=(SNode*)malloc(sizeof(SNode)); scanf("%d",&p->data); p->next=head->next; head->next=p; } return1;}intmenu_select(){ intsn; for(;;) { scanf("%d",&sn); if(sn<1||sn>6) printf("\n\t输入错误,请重新输入\n"); else break; } returnsn;}intPush(LinkStack&top,SElemTypee){ SNode*q; q=(LinkStack)malloc(sizeof(SNode)); if(!q) { printf("溢出!\n"); return(ERROR); } q->data=e; q->next=top->next; top->next=q; return(OK);}intPop(LinkStack&top,SElemType&e){ SNode*q; if(!top->next) {printf("error!\n"); return(ERROR);} e=top->next->data; q=top->next; top->next=q->next; free(q); return(OK);}voidmain(){inte; LinkStacktop; printf(";\;\;\;\;\n"); while(1) { switch(menu_select()) { case1: if(CreatTwo(top,Stack_Size))printf("ess!\n");break;case2: printf("Push:\n"); scanf("%d",&e); if(Push(top,e))printf("ess!\n"); break; case3: if(Pop(top,e))printf("ess!\n"); printf("%d\n",e); break; case4: LinkStackp; printf("所有栈里的元素:\n"); p=top; while(p->next) {p=p->next; printf("%7d",p->data); } printf("\n"); break; case5: return; } }}运行结果:循环队列程序代码:#include<>#include<>#defineOVERFLOW-1#defineOK1#defineERROR0#defineMAXSIZE100typedefstruct{ int*elem;//队列存储空间 intfront; intrear;}SqQueue;//判断选择是否正确intmenu_select(){ intsn; for(;;) { scanf("%d",&sn); if(sn<1||sn>6) printf("\n\t输入错误,请重新输入\