数据结构实验三-栈和列队.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 栈和列队 班级:计算机154 时间:2016.11.03 1.实验目的: 掌握栈这种数据结构特性及其主要储存结构,并能在实际工作中灵活运用。 掌握队列这种数据结构特性及其主要储存结构,并能在实际工作中灵活运用。 了解和掌握递归程序设计的基本原理和方法。 2. 实例 (1) 栈的顺序储存结构及实现 #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct { ElemType elem[MAXSIZE]; int top; }SqStack; void OutStack(SqStack p); void InitStack(SqStack *p); void Push(SqStack *p,ElemType x); ElemType Pop(SqStack *p); ElemType GetTop(SqStack p); main() { SqStack q; int i,y,cord;ElemType a; do{ printf("\n"); printf("\n主菜单\n"); printf("\n 1 初始化顺序栈\n"); printf("\n 2 插入一个元素\n"); printf("\n 3 删除一个元素\n"); printf("\n 4 取栈顶元素\n"); printf("\n 5 结束程序运行\n"); printf("\n-----------------------------\n"); printf("请输入您的选择(1,2,3,4,5)");scanf("%d",&cord); switch(cord) { case 1:{ InitStack(&q);OutStack(q); }break; case 2:{ printf("\n请输入要插入的数据 a=");scanf("%d",&a); Push(&q,a);OutStack(q); }break; case 3:{ a=Pop(&q);printf("\n a=%d",a); OutStack(q); }break; case 4:{ y=GetTop(q);printf("\ny=%d",y); OutStack(q); }break; case 5:exit(0); } }while(cord<=5); } void InitStack(SqStack *p) 原代码中卫MAX 原代码中卫MAX不存在其变量,认为应该为MAXSIZE即可 p->top=0; } void Push(SqStack *p,ElemType x) { if(p->top<MAXSIZE-1){ p->top=p->top+1;p->elem[p->top]=x; } else printf("\n Overflow!"); } ElemType Pop(SqStack *p) { ElemType x; if(p->top!=0){ x=p->elem[p->top]; p->top=p->top-1; return(x); } else{ printf("\n Unerflow!"); return(-1); } } ElemType GetTop(SqStack p) { ElemType x; if(p.top!=0){ x=p.elem[p.top]; return(x); } else{ printf("\n Unerflow!"); return(-1); } } void OutStack(SqStack p) { int i,j; if(p.top==0)printf("\n The Stack is NULL."); for(i=p.top;i>0;i--) printf("\n %2d %6d",i,p.elem[i]); } 运行结果: (2)队列的链表储存结构及实现 #include<stdio.h> #include<stdlib.h> typedef int ElemType ; typedef struct NodeType { ElemType data; struct NodeType *next; }NodeType; typedef struct { NodeType *front,*rear; } L

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档