实验二栈、队列的实现及应用讲述.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 栈、队列的实现及应用 一、实验目的 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。 2、掌握栈和队列的特点,即先进后出与先进先出的原则。 3、掌握栈和队列的基本操作实现方法。 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。 2、掌握栈和队列的特点,即先进后出与先进先出的原则。 3、掌握栈和队列的基本操作实现方法 二、实验学时 2学时 三、实验任务 任务一:(1)实现栈的顺序存储实现栈的 结果分析 顺序表通过设置栈顶运用线性结构实现先进先出功能。 2.任务一(2):完成下列程序,该程序实现栈的链式存储结构,构建链栈(栈中的元素依次为China,Japan,France,India,Australia),依次进行进栈和出栈操作,判断栈空和栈满操作,返回栈顶元素操作。要求生成链栈时,从键盘上读取数据元素。 (1)源代码:#includestdio.h #includestdlib.h #includestring.h # define OK 1 # define ERROR 0 typedef char DataType; /* 链式栈的存储类型 */ typedef struct SNode //define structure LinkStack { DataType data[20]; struct SNode *next; }SNode,*LinkStack; void InitStack_L (LinkStack *top) { top = (LinkStack)malloc(sizeof(SNode)) ; top-next = NULL; printf(\n\n栈初始化成功!\n\n); } /*取链式栈顶元素*/ int GetTop_L(LinkStack *top,DataType e[]) //GetTop_L() sub-function { if(!top-next) { printf(链栈为空!\n); return (ERROR); } else { strcpy(e,top-next-data); return (OK); } } //GetTop_L() end /* 将元素压入链式栈*/ int Push_L(LinkStack *top) //Push_L() sub-function { SNode *q; DataType e[20]; q=(LinkStack)malloc(sizeof(SNode)); if(!q) { printf(存储空间分配失败! \n); return (ERROR); } fflush(stdin);//清除输入缓冲区,否则原来的输入会默认送给变量e printf(\n请输入要入栈的元素的值:); gets(e); strcpy(q-data,e); q-next=top-next; top-next=q; return (OK); } //Push_L() end /*将元素弹出链式栈*/ int Pop_L(LinkStack *top,DataType e[]) //Pop_L() sub-function { SNode *q; if(!top-next) { printf(链栈为空! \n ); return (ERROR); } strcpy(e,top-next-data); q=top-next; top-next=q-next; free(q); return (OK); } //Pop_L() end void display(LinkStack *top) { LinkStack p=top-next; if(!p) printf(栈为空!\n); else{ while(p) { printf(%s-,p-data); p=p-next; } } printf(^\n); } int main() { char choice; DataType e[20]=; LinkStack s=NULL; do { printf(===============================\n); pr

文档评论(0)

整理王 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档