vba栈结构应用基本示例
Stack有很多用途,例如,你必须执行一系列操作,然后以相反的顺序取消这些操作。堆栈也是许多经典算法的数据结构。下面,举两个基本例子来进一步理解堆栈。
示例1:将十进制数转换为二进制数。
以下代码将十进制数转换为相应的二进制数:
作为新堆栈调暗测试
数字转换代码。
子转换()
要转换为的基数。
将n调成整数
要转换的十进制数。
暗淡无光值一样长
将数字存储在转换中。
暗淡无光
存储转换后的号码。
暗淡的字符串
将n修改为要转换的二进制。
将numValue修改为要转换的数字。
n=2
numValue=1348
数字=数字值
将转换后的数字按到堆栈上。
直到(数=0)
stkTest。push(num (num \ n)* n)
num=num \ n
环
一个接一个地堆叠,并将其组合成转换后的结果。
做的同时(不要测试。StackEmpty)
str=str stkTest。流行音乐
环
转换为“N”后的MsgBox numValue数为:”字符串。
末端接头
代码运行后的结果如下图1所示。
图1
代码中的变量n可以修改为所需的二进制数,例如n=2,这意味着该数被转换为二进制数。如果n=8,则该数转换为八进制。代码中的变量numValue是要转换的十进制数,您可以将其修改为任意十进制数。
示例2:确定括号是否匹配。
有时候,我们需要判断表达式中的括号是否匹配。例如,由于输入不小心,相应的右括号被省略了。您可以使用以下步骤来确定括号是否匹配。为了便于演示,直接使用包含符号和数字的数组var来测试括号匹配程序。
将测试堆栈调暗为新堆栈
子匹配括号()
变型变量
作为布尔型
真
var=Array(“{”、“[”、“9”、“(”、“”、“”、“]”、“}”)
模糊如龙
对于i=单音(var)至单音(var)
选择案例变量(一)
大小写“{”、“[”、“(”
testStack。推动风险值(I)
案例")"
If testStack。StackTop=(“然后
testStack。流行音乐
其他
错误
如果…就会结束
案例"]"
If testStack。StackTop="["那么
testStack。流行音乐
其他
错误
如果…就会结束
案例" } "
If testStack。StackTop="{ "那么
testStack。流行音乐
其他
错误
如果…就会结束
结束选择
接下来我
如果是,那么
表达式中的括号匹配
其他
MsgBox“表达式中的括号不匹配”
如果…就会结束
末端接头
在代码中,如果它是一个左括号,它将被放入堆栈中。如果是右括号,则与堆栈的顶部元素进行比较。如果它们对应,它们匹配并弹出堆栈的顶部元素。如果不匹配,括号就不匹配。
版权声明:vba栈结构应用基本示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

















