List 如何在Ada中创建二维链表

List 如何在Ada中创建二维链表,list,data-structures,nested,ada,List,Data Structures,Nested,Ada,对于我正在处理的项目,我希望使用Ada.Collections.Doubly_Linked_list创建包含字符串的2d(列表列表)。在没有任何第三方库的情况下,我很难弄清楚如何使这项工作正常进行。感谢您的帮助 我同意@Rich和@trashgood的评论,但还是举了一个小例子: main.adb with Ada.Text_IO; use Ada.Text_IO; with Ada.Containers; use Ada.Containers; with Ada.Containers.

对于我正在处理的项目,我希望使用Ada.Collections.Doubly_Linked_list创建包含字符串的2d(列表列表)。在没有任何第三方库的情况下,我很难弄清楚如何使这项工作正常进行。感谢您的帮助

我同意@Rich和@trashgood的评论,但还是举了一个小例子:

main.adb

with Ada.Text_IO;    use Ada.Text_IO;
with Ada.Containers; use Ada.Containers;

with Ada.Containers.Doubly_Linked_Lists;
with Ada.Containers.Indefinite_Doubly_Linked_Lists;

procedure Main is

   --  Inner list (Strings are indefinite types).
   package L_Strings is
     new Indefinite_Doubly_Linked_Lists (String);
   use L_Strings;   

   --  Outer list.
   package L_L_Strings is
     new Doubly_Linked_Lists (L_Strings.List);
   use L_L_Strings;


   --  Cursors for pointing to elements in either lists.
   LC  :   L_Strings.Cursor;
   LLC : L_L_Strings.Cursor;

   --  Create an empty outer list.
   LLS : L_L_Strings.List := L_L_Strings.Empty_List;

begin

   --  Add two empty inner lists to the outer list.
   LLS.Append (L_Strings.Empty_List);
   LLS.Append (L_Strings.Empty_List);

   --  Add some strings to the first inner list (of strings).
   LLC := First (LLS);
   LLS (LLC).Append("This");
   LLS (LLC).Append("is");
   LLS (LLC).Append("a");

   --  Add some strings to the second inner list (of strings).
   LLC := Next (LLC);
   LLS (LLC).Append("nested");
   LLS (LLC).Append("linked");   
   LLS (LLC).Append("list");

   -- Loop over the elements of the outer and inner list.
   for Outer_Elem of LLS loop      
      for Inner_Elem of Outer_Elem loop         
         Put (Inner_Elem & " ");
      end loop;
      New_Line;
   end loop;

end Main;
输出

This is a 
nested linked list

分享你的研究成果对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:因为
String
是一种不确定类型,请检查并将您的问题包括在内,以显示您遇到的任何问题。如果有人甚至没有用MCVE或至少任何代码行提出实际的代码问题,请提供答案,我非常不同意。泛型实例化在InterWeb、Ada.Containers以及字符串操作中都有很好的文档记录。一个简单的网络搜索将提供95%的必要材料。但我还是投了更高的票。