是的,Ada有标准的堆栈实现。Ada语言提供了一个名为"Ada.Containers.Stacks"的标准库模块,用于实现堆栈数据结构。
下面是一个简单的代码示例,展示了如何使用"Ada.Containers.Stacks"模块创建和操作堆栈:
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Containers; use Ada.Containers;
procedure Stack_Example is
package Integer_Stacks is new Stack (Integer);
My_Stack : Integer_Stacks.Stack;
begin
-- 向堆栈中推入元素
My_Stack.Push (42);
My_Stack.Push (13);
My_Stack.Push (7);
-- 从堆栈中弹出元素并打印
while not My_Stack.Is_Empty loop
Put (Integer'Image (My_Stack.Top) & " ");
My_Stack.Pop;
end loop;
New_Line;
end Stack_Example;
在这个示例中,我们首先实例化了一个Integer_Stacks
类型的堆栈My_Stack
。然后,我们使用Push
操作将3个整数推入堆栈中。接下来,我们使用Top
操作获取并打印堆栈顶部的元素,然后使用Pop
操作将顶部元素从堆栈中移除。我们重复这个过程,直到堆栈为空。
请注意,这只是一个简单的示例,演示了如何使用Ada的堆栈实现。实际上,"Ada.Containers.Stacks"模块提供了更多的功能和操作,如查询堆栈是否为空、获取堆栈的大小等。你可以在Ada语言的文档中查阅更多关于堆栈的详细信息。
下一篇:Ada输入格式问题