计算机软件基础实验-堆栈.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、实验目的 复习堆栈的基础知识 练习入栈出栈操作二、实验设备 装有运行 C 语言环境的计算机。三、实验内容 实验一 对下述给定程序,完成: 阅读并运行程序。 在有’ /* */ ’的语句后加注释 , 说明语句功能 编程完成在具有 10 个元素的堆栈的栈顶插入数据 11。要求:调试通过并将源程序提交。 四、实验步骤和结果实验一代码 #include stdio.h #define stacksize 100 int push(int s[], int x, int *ptop)/* {  入栈 */ int top; top = *ptop; /* top if (top == stacksize) /*  等于传入的栈的指针所在位置 */ 判断头指针是否等于栈的最大值  */ { printf(overflow); return (0); } /* 判断栈满的时候输出“ overflow ”程序结束 */ else { s[top] = x; /* 将传入的 x 值给现在栈顶所在位置 *ptop = ++top; /* 栈顶上移 */ return (1);  */ } /*  栈未满时进行入栈操作  */ } void main() { static int s[100]; int top = 0, result; result = push(s, 11, top); /* 让 11 入栈 如果成功返回 1 result=1 否则 result=0 */ if (result == 1) /*  入栈成功  */ { printf(success ! \n); printf(top=%d, top); } /* 入栈成功 输出 else printf(failure!);/*  sucess  并且把栈顶位置输出 */ 入栈失败 输出 failure*/ } #include stdio.h #define stacksize 100 int pop(int s[ ], int *ptop, int *py)/*  出栈函数  */ { int top; top=*ptop;/* top 等于传入栈顶指针所在位置值 */ if(top==0)/* 位置 =0 栈空 */ { printf(stack empty); return( 0); }/* 栈空时 输出 stack empty 返回值 0 */ else { --top; *py=s[top]; /* 将栈顶元素弹出 */ *ptop=top;/* 将下移的栈顶指针值 赋值给 *ptop */ return(1); } } void main() {static int s[20]={10,20,30}; int top=3,result,y; result=pop(s,top,y);/* 出栈函数调用 成功出栈后 if(result ==1) { printf (success ! \n); printf (top=%d,y=%d , top,y);}/* 成功出栈后输出  result=1 否则等于 0 */ success 并且将栈顶指针位置值和 栈顶元素值输出  */ else printf(failure!); } 插入代码 #include stdio.h #define stacksize 100 int pop(int s[ ], int *ptop, int *py)/* {  出栈函数 */ int top; top=*ptop;/* top 等于传入栈顶指针所在位置值 */ if(top==0)/* 位置 =0 栈空 */ { printf(stack empty); return( 0); }/* 栈空时 输出 stack empty 返回值 0 */ else { --top; *py=s[top]; /* 将栈顶元素弹出 */ *ptop=top;/* 将下移的栈顶指针值 赋值给 *ptop */ return(1); } } int push(int s[], int x, int *ptop)/* {  入栈 */ int top; top = *ptop; /* top if (top == stacksize) /*  等于传入的栈的指针所在位置 */ 判断头指针是否等于栈的最大值  */ { printf(overflow); return (0); } /* 判断栈满的时候输出 overflow 程序结束 */ else { s[top] = x; /* 将传入的 x 值给现在栈顶所在位置 *ptop = ++top; /* 栈顶上移 */ return (1);  *

文档评论(0)

183****0046 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档