数据结构中栈的应用

摘要:介绍了栈在数据结构中的应用。

关键词:栈 进栈 出栈 数组

中***分类号:TP311.12 文献标识码:A 文章编号:1002-2422(2008)01-0061-02

栈是数据结构中重要的线性结构,是一种特殊的线性表,只允许在表的一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶,另一端称为栈底。栈项的当前位置是动态的,对栈顶当前位置的标记称为栈项指针。当栈中没有数据元素时,称为空栈。栈的插入操作称为进栈或入栈,栈的删除操作称为退栈或出栈。

栈的应用非常广泛,在日常生活中,有许多类似栈的例子,如刷洗盘子时,依次把每个洗净的盘子放到洗好的盘子上。相当于进栈;取用盘子时,从一摞盘子上一个接一个地向下拿,相当于出栈。在计算机中进行算术表达式的计算是通过栈来实现的。算术表达式的两种表示方法,即中缀表示法和后缀表示法。日常算术表达式是将操作符(+,-,*,/)放在两个操作数(数字,或代表数字的字母)之问的。假定操作数为单个英文字母,运算符只有+、-、*√(均为双目运算符,相结合),因为操作符写在操作数的中间,所以把这种写法称为中缀表达法。

例如:(A-(B*C+D)*E)/(F+G)

这是一个中缀表达式,中缀表达式的计算比较复杂,必须遵守以下三条规则:(1)先计算括号内,后计算括号外;(2)在无括号或同层括号内,先进行乘除运算,后进行加减运算,即乘除运算的优先级高于加减运算的优先级;(3)同一优先级运算,从左向右依次进行。

从这三条规则可以看出,在中缀表达式的计算过程中,既要考虑括号的作用,又要考虑运算符的优先级,还要考虑运算符出现的先后次序。因此,各运算符实际的运算次序往往同在表达式中出现的先后次序是不一致的,是不可预测的。那么,能否把中缀算术表达式转换成另一种形式的算术表达式,使计算简单化呢?波兰科学家卢卡谢维奇(Lukasiewicz)很早就提出了算术表达式的另一种表示,即后缀表示,也称逆波兰式。在后缀表达法中,操作符跟在两个操作数的后面,这样,A+B就成为AB+,AA3成为AB/。采用后缀表示的算术表达式被称为后缀算术表达式或后缀表达式。在后缀表达式中,不存在括号,也不存在优先级的差别,计算过程完全按照运算符出现的先后次序进行,整个计算过程仅需一遍扫描便可完成,显然比中缀表达式的计算要简单得多。

例如:上面中缀表达式转换为后缀表达式为ABC*D+E*-FG+/

中缀算术表达式转换成对应的后缀算术表达式是:把每个运算符都移到两个操作数的后面,然后删除掉所有的括号即可。中缀表达式转换成后缀表达式的过程是假定中缀表达式中无空格符,但整个算术表达式以空格符结束,并假定所提供的算术表达式非空且语法是正确的。(1)数组IN口存储中缀表达式;(2)数组POLISH[]存储其后缀表达式;(3)数组S口是一个后进先出的栈;(4)函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级如表1所示。

转换规则:

(1)从头到尾扫描中缀表达式,对不同类型的字符按不同情况处理:①如果是数字则直接放入后缀表达式数组;②如果是左括号则直接进栈;③如果是右括号,则把从栈项直到对应左括号之间的运算符依次出栈,并清除对应的左括号;④对于运算符,如果该运算符的优先级大于栈顶优先级,则直接进栈,若该运算符的优先级小于等于栈顶优先级,则先把栈顶运算符出栈,写入后缀表达式数组,然后再进栈.(2)扫描完成后,取出栈中所有运算符,写入后缀表达式数组。

中缀表达式(A+B-C*D)*(E-F)/G转换成后缀表达式为AB+CD*-EF-*G/。利用数据结构中的栈,就很方便地把中缀表达式转换成后缀表达式。

数据结构中栈的应用

转载请注明出处学文网 » 数据结构中栈的应用

学习

工作举措范文精选

阅读(232)

本文为您介绍工作举措范文精选,内容包括三基本与三基工作融合举措,工作思路和具体举措范文。工作举措篇1根据中央印发的《关于进一步推进移风易俗建设文明乡风的指导意见》,镇充分认识开展移风易俗工作的重要性,并正确引导群众婚事新办,丧

学习

“十三五”时期健全国家基本公共服务体系的重大举措

阅读(155)

本文为您介绍“十三五”时期健全国家基本公共服务体系的重大举措,内容包括十三五期间推进基本公共服务思路,国家完善公共服务体系措施。“十三五”是“基本公共服务均等化总体实现”的关键时期。为实现这一目标,国家基本公共服务体系要努

学习

劳动创造美

阅读(27)

本文为您介绍劳动创造美,内容包括劳动创造美主题征文,劳动创造美作文。摘要:“劳动创造美”这句话着实精妙!劳动、创造和美本身就是密不可分的。劳动与技术教育既是对劳动技能的传承,也是美育的载体,更是创新的摇篮。笔者尝试将美育、科学融

学习

玉米栽培技术

阅读(20)

本文为您介绍玉米栽培技术,内容包括甜糯玉米栽培方法,玉米大棚栽培技术。摘要:随着国家的不断发展,对农业的扶持力度也越来越大,中国农业得到飞速的发展,作为我国主要栽培作物之一的玉米,其种植面积仅次于小麦和水稻,越来越受到农业专家的重视

学习

关于生态伦理及生态伦理分析

阅读(25)

本文为您介绍关于生态伦理及生态伦理分析,内容包括生态伦理最新概述,生态伦理问题分析。摘要:随着近年来经济的不断发展,人们所能获得的物质也日益多样化。然而,经济高速发展的背后是生态环境的持续恶化,生态危机已是人类所共同面临的一大难

学习

农药学学报

阅读(44)

本文为您介绍农药学学报,内容包括农药学学习资料,农药测试学报。羧酸酰胺类(CAAs)杀菌剂研究进展朱书生卢晓红陈磊刘西莉(1)

学习

我眼中的他作文600字

阅读(20)

本文为您介绍我眼中的他作文600字,内容包括我眼中的他作文初中600字,我的眼中有他600字作文。六年级的时候,我们班有五个同学自称“五大金刚”,他们相互勾结,干一些坏事,却又并不团结,我是有些看不惯他们的。今年的五月二十五日,“五大金刚”

学习

三角函数·恒等变换

阅读(23)

本文为您介绍三角函数·恒等变换,内容包括三角函数恒等变换技巧,三角函数恒等变换计算讲解。一、选择题(每小题4分,共40分,每小题只有一个选项符合题意)

学习

诺思制度变迁理论述评

阅读(53)

摘要:诺思认为,制度应当是“被人设计制定的”,把制度看成一种社会规则,即是人们较为普遍使用的关系制度的规定。产权理论、国家理论和意识形态理论是诺思的制度变迁理论的三大基石,诺思的制度变迁理论经历了从新古典经济学的“理性选择模型”

学习

曲面的主曲率\高斯曲率和平均曲率

阅读(20)

本文为您介绍曲面的主曲率\高斯曲率和平均曲率,内容包括二维流形上的里奇曲率与高斯曲率,球面的高斯曲率和平均曲率。【摘要】本文作者在给出了曲面的主曲率、高斯曲率、平均曲率之后,又对主曲率是法曲率的最大值和最小值进行了证明。

学习

一缕春风作文700字

阅读(23)

本文为您介绍一缕春风作文700字,内容包括一缕春风迎面来作文700字,一缕春风800字作文。欢快的鸟鸣声告诉我:春天来了!沐浴着春日的光辉,踏着软软的泥土,来到田野旁,阵阵春风拂过脸颊,柔柔的,暖暖的,夹杂着丝丝香气,沉浸其中,耳边吹来的是记忆的耳

学习

谈锤击沉管挤密夯扩桩施工

阅读(27)

本文为您介绍谈锤击沉管挤密夯扩桩施工,内容包括套管夯打和锤击沉管区别,管桩锤击打桩记录表完整。摘要:我国的湿陷性黄土主要分布在山西、河南的西部、陕西、甘肃的大部分及青海的东部,由于湿陷性黄土黄土在自重或一定荷重作用下受水浸湿

学习

生物脱氮基本原理

阅读(40)

本文为您介绍生物脱氮基本原理,内容包括生物脱氮与除磷原理,脱氮原理及处理方法。摘要:进行生物脱氮可分为氨化-硝化-反硝化三个步骤。由于氨化反应速度很快,在一般废水处理设施中均能完成,故生物脱氮的关键在于硝化和反硝化。

学习

英语论文范文精选

阅读(23)

本文为您介绍英语论文范文精选,内容包括英语论文怎么写降低查重率,英语教学论文发表的期刊。英语论文篇1【摘要】随着全球化进程的不断推进,英语在我们生活中的地位也越来越重要,但全面英语普及学习中,学术界方面对英语论文的要求也越来越

学习

论数据结构中的外排序与内排序

阅读(19)

本文为您介绍论数据结构中的外排序与内排序,内容包括数据结构中的排序方法,数据结构与算法内部排序。摘要:主要讨论数据结构中的内排序和外排序。通过讨论两者之间的区别来对内外排序进行深入讨。比较了多种内排序的方法,从时间复杂度、

学习

钱学森《工程控制论》:重现经典

阅读(17)

本文为您介绍钱学森《工程控制论》:重现经典,内容包括钱学森工程控制论第3版,钱学森著作工程控制论。2006年12月11日是钱学森95周年华诞,为表示对这位伟大科学的敬意,发扬他的学术思想,上海交通大学出版社集中编辑出版了一批钱学森系列学术

学习

经典名方:小柴胡汤

阅读(23)

春天来临,外邪侵袭,外感发热、食欲不振经常发生。在此,特别为大家介绍一名方――

学习

经典的解读

阅读(16)

本文为您介绍经典的解读,内容包括经典电视剧解读,经典的解读。【摘要】现代文学史的作品分析模式有分析式和感悟式。前者历经数十年发展逐渐成熟完善,成为文学史写作的固定思路。后者则未能得到发展。重新回顾建国以来的现代文学学科史,将

学习

浅谈人力资源工作中裁减冗员问题的实践操作

阅读(22)

本文为您介绍浅谈人力资源工作中裁减冗员问题的实践操作,内容包括整顿吏治裁减冗员怎么读,裁减冗员的冗是什么意思。摘要:在企业特定的发展阶段,往往面临裁减冗员问题,这也是影响企业稳定,压力和阻力较大的工作之一。本文通过梳理裁减冗员的

学习

微软经典面试题及答案

阅读(19)

本文为您介绍微软经典面试题及答案,内容包括微软面试题有1000个瓶子,微软java技术面试题。第一组

学习

十大经典备胎歌曲

阅读(24)

本文为您介绍十大经典备胎歌曲,内容包括备胎的网络歌曲,十大备胎之歌。如今的社会,KTV绝对是个释放压力的好所在。而我们可爱的流行音乐制作者们,也为广大备胎族量身定制了众多的专属歌曲。想要抒发备胎的苦闷?唱这些歌准没错!

学习

经典童话:《老雷斯的故事》

阅读(23)

本文为您介绍经典童话:《老雷斯的故事》,内容包括老雷斯故事原文,老雷斯的童话故事。从前有一个小镇,表面看似椰林树影,处处鸟语花香,其实所有花草树木都由机器组成,透过计算机全天候控制!偏偏泰德有一个梦想,就是寻找一棵活生生的树木。全因