摘要:“数据结构”是计算机程序设计的重要理论技术基础,它是计算机学科的核心课程。 用数据结构中的知识、算法、思想,解决一些实际问题,可使得该问题变得一目了然,易懂。 本文是通过C++语言平台实现阿克曼函数问题的算法设计,采用递归调用和以栈作为存储的非递归调用的方法解决,使抽象的数学问题程序化,更便于理解。 84338
毕业论文关键词:数据结构;阿克曼函数;递归;非递归
Application of the Stack Data Structure
Abstract: "data structure" is an important theoretical basis for computer programming technology, which is the core of computer science courses。 Knowledge of data structures, algorithms, ideas solve some practical problems may cause some problems became clear, easy to understand。 This paper is designed to achieve Ackermann function issues through C ++ language platform algorithm design and the use of recursive calls to the stack as a method of storing non-recursive call to solve the problem so abstract mathematical procedures, easier to understand。
Key words: Data structure; Ackermann function; Recursive; Non-recursive
目 录
摘 要。 2
引言 2
1。 预备知识 2
1。1 数据结构 2
1。2 C++语言 2
2。 栈的应用研究 2
2。1 栈的非递归算法 2
2。2 阿克曼函数 2
2。3 递归算法 2
3。 栈的实际操作 2
3。1 函数实现初始化和入出栈 2
4。栈的操作问题 2
5。 结束语 2
参考文献 2
致谢 2
数据结构中栈的应用研究
引言
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
本文中根据参考文献[1]-[4]详细的介绍数据结构中的两种特殊的线性形式——栈和堆。 栈是一种线性表,而且是只可在表的一端进行插入和删除运算的线性表;而堆是一种树形结构,其满中树中任一非叶结点的关键字均不大于或不小于其左右子树的结点的关键字。简单的来说,堆是无序的,可任意取任意插入,而栈对任意元素的操作都是有秩序的和有约束的。
本文使用递归和非递归方法实现阿克曼函数的问题,同时在非递归调用时利用了栈作为元素的存储空间。详细的介绍了栈的算法设计过程。本文首先介绍了课题背景和课题的意义。在本章中,还给出了我们查阅并借用的一些参考文献的主要内容;其次主要介绍了论文的分析与算法的设计,对存在的问题作了简要分析并予以改进以及算法的复杂性的分析;最后介绍对栈的有关操作及其他操作问题。
1。 预备知识
1。1 数据结构
一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。论文网