软件技术基础栈的建立和操作.docVIP

  • 7
  • 0
  • 约1.3千字
  • 约 3页
  • 2017-02-15 发布于重庆
  • 举报
软件技术基础栈的建立和操作

一、实验名称:顺序栈的建立和操作。 二、实验目的: 1、顺序栈的定义及C语言实现; 2、顺序栈的操作及C语言实现。 三.实验内容:定义栈、初始化栈、出栈、入栈。 四、实验设备与软件环境: 1、安装有Windows 2000/XP的计算机; 2、Microsoft Visual C++ 6.0软件环境。 五、实验要求:用C语言实现栈的定义、栈的初始化、出栈操作、入栈操作。 六、实验程序: #define N 100 typedef struct stack {int v[N]; int top; }STACK; void inistack(STACK *s) {s-top=-1; } void push(STACK *s,int x) {if(s-top==N-1) {printf(栈满\n); exit(1); } else {s-top=s-top+1; s-v[s-top]=x; } } int pop(STACK *s) {int x; if(s-top==-1) {printf(空栈\n); exit(1); } else {x=s-v[s-top]; s-top= s-top-1; } return x; } 第一种: main() {int a,b,c; STACK mystack; inistack(mystack); printf(请输入元素a、b、c\n); scanf(%d%d%d,a,b,c); push(mystack,a); printf(第一个元素是:%d\n,pop(mystack)); push(mystack,b); push(mystack,c); printf(另外两个元素是:%d\t%d\n,pop(mystack),pop(mystack)); } 第二种: main() {int a,b,c; STACK mystack; inistack(mystack); printf(请输入元素a、b、c\n); scanf(%d%d%d,a,b,c); push(mystack,a); printf(第一个元素是:%d\n,pop(mystack)); printf(下两个元素分别是:); push(mystack,b); push(mystack,c); printf(%d\t,pop(mystack)); printf(%d\n,pop(mystack)); } 实验结果: 实验结果一: 实验结果二: 八、实验中遇到的问题、解决方法及体会: 1、在创建源文件时需要注意的是扩展名为‘.C’; 2、在了解了线性表的链式存储结构下的部分有关操作的基础上,对栈的理解与操作相对来说较为容易; 3、粗心大意,容易输错一些字母; 4、对C语言中的一些基本问题以往的比较多,尤其是指针部分; 5、通过实验,了解了不同的进出栈顺序。

文档评论(0)

1亿VIP精品文档

相关文档