链式栈
文章平均质量分 88
凌空的桨
https://github.com/marsmarcin/
展开
-
链式表示的栈——链式栈3——括号匹配问题
任意给定一个数学表达式如:{(12-5)*3-[22+(3*4-19)/3]}+(34-21)*2 ,试设计一个算法判断表达式的括号是否匹配。【括号匹配的定义】在计算机中,常见的括号分为3种:花括号、方括号、和圆括号。'{' 和 '}' 、 '[' 和 ']'、 '(' 和 ')'分别是匹配的括号,括号的嵌套顺序是任意的。像{[]()}是正确格式,而{[}]是不正确...原创 2018-11-23 17:11:37 · 1074 阅读 · 0 评论 -
链式表示的栈——链式栈4——算术表达式
通过键盘输入一个表达式,如21-(15+7*9)/3,要求将其转换为后缀表达式,并计算表达式的值。【分析】求表达式的值是高级程序设计语言中编译器设计的一个基本问题。它的实现借助于栈的“后进先出”特性。一个算术表达式是由操作数(运算对象)、运算符和分解符(括号)组成的有意义的式子。运算符从运算对象的个数上分为单目运算符和双目运算符;从运算类型上可以分为算术运算符、关系运算符、逻辑运算符等,在此...原创 2018-11-24 15:30:10 · 703 阅读 · 0 评论 -
链式表示的栈——链式栈1——内容介绍
【定义】 采用链式存储方式的栈称为链栈或者链式栈。链栈是由若干个结点组成的,而结点又由数据域和指针域组成。在链栈中,结点的数 据域存储栈中元素值,指针域表示结点元素之间的关系。 插入和删除元素的一端称为栈顶栈顶由栈顶指针top表示。因为插入和删除操作都在栈顶指针位置进行,因此为了操作上的方便,通常在链栈的第一个结点之前设置一个头结点。栈顶指针top指向头结点。头结点的指针指向链栈的...原创 2018-11-23 10:54:02 · 1953 阅读 · 0 评论 -
链式表示的栈——链式栈2——进制转换
利用链表模拟栈实现十进制数2015转换为对应的八进制数。【分析】一般情况下,把十进制转换为八进制、二进制等可以使用辗转相除法,例如将十进制数2015转换为八进制数的过程如图。 转换后的八进制数为(3737)在图中,被除数除以8得到商数,记下余数,又将商数作为新的被除数继续除以8,直到商为0为止,把得到的余数排列起来就是转换后的八进制数。由此得到十进制数转换八进制数的算法如下:...原创 2018-11-23 15:30:55 · 745 阅读 · 0 评论 -
链式表示的队列——链式队列3——判断是否为回文
编写一个算法,判断任意给定的字符序列是否为回文。所谓回文是指一个把字符序列的中间字符作为基准,两字符完全相同,即从两个方向看,都是相同的字符序列。例如,字符序列“ABCDEFEDCBA”为回文,而字符序列“xabcdcaax”不是回文。【分析】这个题目考察对栈的“后进先出”思想和队列的“先进先出”思想理解及应用,判断是否为回文可通过构造栈和队列来实现。具体做法是:可以先把一个字符序列分...原创 2018-11-27 22:08:26 · 1779 阅读 · 0 评论