3 章

栈——实验三

3.1 实验目的及要求

1.理解特 的线性结构——顺序栈的抽象数据类型的定义,及其在 C 语言环境中的

表示方法。

2 .理解顺序栈的基本操作的算法,及其在C 语言环境中一些主要基本操作的实现。

3 .在C 语言环境下实现顺序栈的应用操作:

利用栈实现十进制数转换成八进制数。

② 利用栈实现一位数的加减乘除的表达式求解。

3.2 实 验 内 容

经过对实验目的及要求的分析,本实验仍然采用首先描述栈的基本操作集函数,然后

分别在两个应用操作中使用基本操作集函数来实现。

由于栈是一种特 的线性结构,仅在栈顶进行插入和删除操作,即栈具有后进先出的

特 ,故其操作比一般的线性表更为容易,所以在本实验中有关栈的基本操作集的实现都

比较简单,没有做过多的说明,而是在数制转换和表达式求解的应用操作中加入了更多的

编程技巧,使读者通过本实验不仅了解栈这种特 结构的线性表,而且掌握利用栈可实现

很多的应用,尤其是在实现表达式求解时用到了两个顺序栈,并且加入了运算符的优先关

系的判断等,实现稍有难度。

在程序 Stack .c 中,只包含了数制转换和一位数的表达式求解,多位数的表达式求

解思想与一位数表达式求解思想一致,但需要添加多位数的接收处理,请读者自行编写

代码。

程序名为:Stack.c。

在Stack.c 中包含的函数如图3.1 所示。

C

数据结构算法设计与实现指导 ( 语言版)

28

图3.1 Stack.c 中包含的函数一览表

3.3 功能函数的分析设计及源代码

本部分列出了实现顺序栈的操作的源代码,并在适当的位置上添加了一些文字和流程

图的注释,帮助读者理解顺序存储的栈的存储结构及操作算法。

文件名:Stack.c

#include "alloc.h"

#include "stdio.h"

#define STACK_INIT_SIZE 10

#define STACKINCREMENT 2

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define OVERFLOW -2

typedef int SElemType;

typedef int Status;

//定义顺序栈的结构

typedef struct SqStack

{

SElemType *base;

SElemType *top;

int stacksize;

}SqStack;

//初始化一个空栈

Status InitStack(SqStack *S)

{

(*S).base=(SElemType *)malloc (STACK_INIT_SIZE*sizeof(SElemType));

if(!(*S).base)

exit(OVERFLOW);

第3 章 栈——实验三

29

(*S).top=(*S).base;

(*S).stacksize=STACK_INIT_SIZE;

ret

c语言算法设计 pdf下载,数据结构算法设计与实现指导(C语言版).pdf相关推荐

  1. 数据结构java实验 刘小晶_《数据结构实例解析与实验指导——Java语言描述》刘小晶著【摘要 书评 在线阅读】-苏宁易购图书...

    商品参数 作者: 刘小晶著 出版社:清华大学出版社 出版时间:2013-2-1 版次:1 印次:1 印刷时间:2013-2-1 字数:619000 页数:380 开本:16开 装帧:平装 ISBN:9 ...

  2. c语言数据结构课程设计停车场管理系统,数据结构课程设计报告停车场管理系统...

    <数据结构课程设计报告停车场管理系统>由会员分享,可在线阅读,更多相关<数据结构课程设计报告停车场管理系统(8页珍藏版)>请在人人文库网上搜索. 1.数据结构课程设计报告系 别 ...

  3. 计算机课程设计收费管理系统,数据结构课程设计报告---收费停车场管理系统

    数据结构课程设计报告---收费停车场管理系统 (20页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 XX大学计算机与电子 信息学院< ...

  4. 数据结构 算法与应用C 语言描述第六章,数据结构算法与应用-C语言描述002.pdf

    下载 下载 第2 章 程 序 性 能 以下是本章中所介绍的有关程序性能分析与测量的概念: • 确定一个程序对内存及时间的需求. • 使用操作数和执行步数来测量一个程序的时间需求. • 采用渐进符号描述 ...

  5. c语言降序多项式加法,数据结构算法(多项式加法)的C语言完美实现

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*数据结构多项式加法用C语言的完美实现,书43页 算法 2.23[ 数据结构(C语言版) 严尉敏主编]*/ /*注释就不加了,本程序的所有函数书上都有说 ...

  6. 家族关系查询系统程序设计算法思路_大数据结构课程设计(家族关系查询系统)要点...

    实用标准文案 精彩文档 1 课程设计介绍 1.1 课程设计项目简介 家谱是一种以表谱形式, 记载一个以血缘关系为主体的家族世 系繁衍和重要人物事迹的特殊图书载体.家谱是中国特有的文化 遗产,是中华民族 ...

  7. matlab 数理统计 pdf下载,十二五江苏省重点教材·数理统计学及其应用:使用MATLAB pdf 宗序平...

    "十二五"江苏省重点教材·数理统计学及其应用:使用MATLAB 51PSx1uoPRL._SX417_BO1,204,203,200_.jpg (44.12 KB, 下载次数: 9 ...

  8. linux 解析pdf下载工具,Linux高级系统级性能分析工具-perf.pdf

    Linux高级系统级性能分析工具-perf Linux 的系统级性能剖析工具‐perf (二) 承刚 TAOBAO  Kernel Team chenggang.qin@ 第三章  Perf top ...

  9. 大学计算机上机实验指导与测试pdf,4大学计算机基础上机实验指导与习题--习题.pdf...

    专业收集整理精品文档 !!!!!! 精品文档,值得下载,可以编辑! !! !!!!! ========================================================= ...

最新文章

  1. 2019 GDUT Rating Contest I : Problem H. Mixing Milk
  2. Linux Shell 脚本限制ssh最大用户登录数
  3. Windows下查看已经安装的GPU的情况
  4. PHP带重试功能的curl
  5. jQuery图片轮播(焦点图)插件(转载)
  6. 与mysql的零距离接触_与MySQL的零距离接触
  7. android activity切换动画
  8. 解决表字段使用关键字导致Mybatis Generator生成代码异常的解决方案
  9. 第十一周总结--助教
  10. poj 1185 火炮 (减少国家DP)
  11. Perl 文件和文件夹操作
  12. 【调查 】DBA的压力究竟有多大?
  13. java数组写入excel_java - 如何使用Java将数组数据写入Excel - 堆栈内存溢出
  14. SVN下载安装及入门使用教程_win10_64位
  15. RTKLIB源码解析(三)、 Rinex文件读取(rinex.c)——1
  16. ideaIU-2018.3.1安装及激活方法-百度网盘分享
  17. 【转】Rstudio中修改工作路径的三种方法
  18. python学习笔记_week19
  19. Wooboo第四批(暨6月7日)上传程序送百元现金活动获奖公告
  20. java实训心得感想30字,java实训心得体会感想

热门文章

  1. aboboo播放本地课程(有字幕)教程
  2. MySQL zip下载与安装
  3. WinZip 24中文版下载+安装教程
  4. 和功率的计算公式_电缆、功率、耗电量计算公式大全
  5. 医号馆门诊管理软件SaaS系统——新开电子处方以及售药窗口操作手册
  6. 信息学奥赛一本通1399——甲流病人初筛
  7. c++ 结构体遍历_二叉树(Binary Tree)的建立与遍历——C语言实现
  8. [操作系统] 操作系统真相还原读书笔记三:MBR加载loader到内存并跳转到loader执行
  9. [知识点]ss,dsds/dsda,tsts,qsqs
  10. 连接池-C3P0Utils工具类(c3p0)