第3次实验-实验报告.docVIP

  • 12
  • 0
  • 约4.33千字
  • 约 8页
  • 2016-11-27 发布于河南
  • 举报
第3次实验-实验报告

附件2: 北京理工大学珠海学院实验报告 ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级 计算机X班 学号 1202010XXXXX 姓名 XXX 指导教师 余俊杰 成绩 实验题目 栈的实现与应用 实验时间 2014-3-25 一、实验目的、意义 (1)理解栈的特点,掌握栈的定义和基本操作。 (2)掌握进栈、出栈、清空栈运算的实现方法。 (3)熟练掌握顺序栈的操作及应用。 二、实验内容及要求 1.定义顺序栈,完成栈的基本操作:建空栈、入栈、出栈、取栈顶元素(参见教材45页)。调用栈的基本操作,将十进制数转成十六进制数。 提示:余数入栈全为整数,出栈时判断:=9输出整数,否则输出对应的字母。 2. 调用栈的基本操作,求出表达式的值。如,输入13*(7-2)#,输出65。 提示:如果输入的字符是数字,不能马上入栈,要判断下一个字符是否还是数字。 三、实验所涉及的知识点 数据结构,C语言结构体,顺序栈的建空,出入,取栈 四、实验结果及分析 五、总结与体会 对于数据结构学起来还是相当吃力的,需要在课后多练习提高。这次实验通过多个函数出现在同一个程序中的实现,便于熟悉全局变量和局部变量在程序中的不同作用域的问题 六、程序清单(包含注释) #include stdio.h#include stdlib.h#include malloc.h// 定义一个节点的结构 typedef struct node { int member; //数据域 struct node * pNext;//指针域 }Node,*pNode; // 定义一个栈结构 typedef struct stack { pNode Top; //栈顶 pNode Bottom; //栈底 }Stack,* pStack; void InitStack(pStack ); // 初始化栈的函数 bool Push(pStack ,int); // 进行压栈操作的函数 void TraverseStack(pStack ); // 遍历栈函数 bool Empty(pStack ); // 判断栈是否为空的函数 int Pop(pStack ); // 进行出栈操作的函数 void Clear(pStack ); // 清空栈的函数 int main(void) { Stack s; // 定义一个栈 int i; int num; int data; // 临时保存用户输入的数据 int re_num; // 保存Pop函数的返回值 InitStack(s); printf(你想输入几个数据啊:); scanf(%d,num); for (i = 0;i num;i++) { printf(第 %d 个数:,i+1); scanf(%d,data); if (Push(s,data)) // 调用Push函数 { continue; } else { printf(进行进栈操作失败!\n); exit(-1); } } TraverseStack(s); // 调用遍历函数 printf(你想去掉几个数啊: ); scanf(%d,data); printf(你去掉的数字是:); for (i = 0; i data;i++) { re_num = Pop(s); // 调用Pop函数,并把返回值赋给re_num; printf

文档评论(0)

1亿VIP精品文档

相关文档