网站大量收购独家精品文档,联系QQ:2885784924

堆栈,队列操作上级实验.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 堆栈和队列的基本操作一、 目的初始化栈、判栈为空、出栈、入栈等运算。二、要求1、认真阅读和掌握本实验的算法。2、上机将本算法实现。3、保存和打印出程序的运行结果,并结合程序进行分析。三、内容(顺序结构、链式结构)队列操作:栈、判断栈空、出栈入栈等运算。#includeString typedef char ElemType; #define StackSize 100 /*顺序栈的初始分配空间*/ typedef struct { ElemType data[StackSize]; /*保存栈中元素*/ int top; /*栈顶指针*/ } SqStack; void InitStack(SqStack st) { st.top=-1; } int Push(SqStack st,ElemType x) /*进栈运算*/ { if (st.top==StackSize-1) /*栈满*/ return 0; else /*栈不满*/ { st.top++; st.data[st.top]=x; return 1; } } int Pop(SqStack st,ElemType x) /*出栈运算*/ { if (st.top==-1) /*栈空*/ return 0; else /*栈不空*/ { x=st.data[st.top]; st.top--; return 1; } } int GetTop(SqStack st,ElemType x) /*取栈顶元素*/ { if (st.top==-1) /*栈空*/ return 0; else { x=st.data[st.top]; return 1; } } int StackEmpty(SqStack st) /*判断栈空运算*/ { if (st.top==-1) /*栈空*/ return 1; else /*栈不空*/ return 0; } void main() { SqStack st; ElemType e; InitStack(st); printf(栈%s\n,(StackEmpty(st)==1?空:不空)); printf(a进栈\n);Push(st,a); printf(b进栈\n);Push(st,b); printf(c进栈\n);Push(st,c); printf(d进栈\n);Push(st,d); printf(栈%s\n,(StackEmpty(st)==1?空:不空)); GetTop(st,e); printf(栈顶元素:%c\n,e); printf(出栈次序:); while (!StackEmpty(st)) { Pop(st,e); printf(%c ,e); } printf(\n); } 运行结果 链栈的基本操作: #include stdio.h #include malloc.h typedef int ElemType; typedef struct lsnode{ ElemType data; struct lsnode *next; }LinkStack; void InitStack(LinkStack *ls){ ls=NULL; } void Push(LinkStack *ls,ElemType x){ LinkStack *p; p=(LinkStack *)malloc(sizeof(LinkStack)); p-data=x; p-next=ls; ls=p; } int Pop(LinkStack *ls,ElemType x){ LinkStack *p; if(ls==NULL) return 0; else{ p=ls; x=p-data; ls=p-next; free(p); return 1; } } int GetTop(LinkStack *ls,ElemType x){ if(ls==NULL) return 0; else{ x=ls-data; return 1; } } int StackEmpty(LinkStack *ls) { if (ls==NULL) return 1; else return 0; } void main(){ LinkStack *ls; ElemType e; InitStack(

您可能关注的文档

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档