1、1 数据结构 课 程 设 计 题题 目目 栈的基本操作及其应用栈的基本操作及其应用 系系 ( (部部) ) 计算机科学与技术系计算机科学与技术系 班班 级级 1616 计本(计本(2 2) 姓姓 名名 学学 号号 指导教师指导教师 2018 年 1 月 8 日 至 2018 年 1 月 12 日 共 1 周 2 数据结构 课程设计任务书 一、设计题目、内容及要求 1、设计题目:栈的应用算法设计与实现。 2、设计内容及要求: (1)实现栈的基本操作,如进栈、出栈、判栈空等。 (2)实现栈的三种应用算法:如数制转换、表达式求值、括号匹配、文本编辑等应 用。 (3)实现栈的应用迷宫求解的应用算法。
2、注: (2) (3)选择其一即可。 二、要求的设计成果(课程设计说明书、设计实物、图纸等) 1、用 C 语言或者 C+语言进行程序设计,实现算法的功能。注重算法效率,代码要 有适当的注释。 2、撰写课程设计说明书一份,不少于 2000 字。课程设计说明书应包括封面、任务 书、成绩评定表、正文(设计思路、设计步骤等) 、参考文献(资料)等内容。 三、进程安排 1 月 8 日:进行需求分析,确定算法的主要功能和算法思路;进行详细设计,确定各 模块的算法思路; 1 月 9 日1 月 10 日:进行编码实现;进行测试调试,完善设计; 1 月 11 日:撰写设计说明书,准备答辩; 1 月 12 日:答辩
3、。 四、主要参考资料 1.严蔚敏,吴伟民.数据结构.清华大学出版社,2007 2.苏仕华.数据结构课程设计.机械工业出版社,2010 3.滕国文.数据结构课程设计.清华大学出版社,2010 指导教师(签名) : 教研室主任(签名) : 3 1.引言 在计算机系统中,栈则是一个具有以上属性的动态内存区域。程序可以将数据压入栈中,也可 以将数据从栈顶弹出。在 i386 机器中,栈顶由称为 esp 的寄存器进行定位。压栈的操作使得栈顶的 地址减小, 弹出的操作使得栈顶的地址增大。 首先系统或者数据结构栈中数据内容的读取与插入 (压 入 push 和弹出 pop)是两回事!插入是增加数据,弹出是删除数
4、据,这些操作只能从栈顶即最低地 址作为约束的接口界面入手操作,但读取栈中的数据是随便的没有接口约束之说。很多人都误解这 个理念从而对栈产生困惑。而系统栈在计算机体系结构中又起到一个跨部件交互的媒介区域的作用 即 cpu 与内存的交流通道,cpu 只从系统给我们自己编写的应用程序所规定的栈入口线性地读取执 行指令,用一个形象的词来形容它就是 pipeline(管道线、流水线)。cpu 内部交互具体参见 EU 与 BIU 的概念介绍。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按 照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从 栈顶
5、开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中, 不需要改变栈底指针。 栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈 顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般 称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。栈可以用来在函数调用的时 候存储断点,做递归时要用到栈! 一、基本概念 栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线形表。 栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照先 进后出的原则存储数据,先
6、进入的数据被压入栈底,最后的数据在栈顶,需要读数据的 时候从栈顶开始弹出数据(最后一个数据被第一个读出来) 。 栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的 一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零 时称为空栈。插入一般称为进栈(PUSH) ,删除则称为退栈(POP) 。 栈也称为后进先 出表(LIFO 表),栈可以用来在函数调用的时候存储断点,做递归时要用到栈! 本课程设计涉及的主要内容是对栈进行基本操作和实现栈的一些实际应用,在课程 设计中,系统开发平台为 Windows 7。程序设计语言使用 Visual c+。程序的运行平台为 Windows 2000/XP/7/10。 /* 2 问题分析 本次课程设计主要介绍栈的概念和栈的