手机版

vba栈结构应用基本示例

时间:2021-09-22 来源:互联网 编辑:宝哥软件园 浏览:

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或者邮箱删除。