Lists containing lists

BlitzMax Forums/BlitzMax Beginners Area/Lists containing lists

EOF(Posted 2005) [#1]
I'm getting muddled up on how to maintain a list where each entry holds a unique list of other items.
Something like this for example:

butchers
     > sausages
     > beef
     > pork
bakers
     > bread
     > cakes
     > buns
post office
     > stamps
     > envelopes
     > stationery


How do I approach this?
So far I have this prototype but I'm a stuck on how to link a list of products to a shop from a list ...
shoplist:TList=CreateList()

Type shop
 Field shoptype$
 Field productlist:TList  ??????????
End Type

Global s:shop
s=New shoptype
s.shoptype$="butchers"



Dreamora(Posted 2005) [#2]
shop_list:TLIST = new TLIST
type Shop
   field shop_type:string
   field product_list:TLIST

   method new ()
      shop_list.addlast (self)
      product_list = new TLIST
   end method

   method add_product (_name:string)
      product_list.addlast (product.create(_name))
   end method
end type

type product
   field name:string
   
   function create:product (_name:string)
     local t:product = new product
     t.name = _name
     return t
   end function
end type

global s:shop = new shop
s.shop_type = "butchers"
s.add_product = "sausages"



EOF(Posted 2005) [#3]
I found a way which is much the same as yours it seems.
Thanks for the quick response! ...

Framework brl.linkedlist
Import brl.standardio

Global shoplist:TList=New TList

Type shop
	Field shoptype$
	Field productlist:TList=New TList
	Method New()
		ListAddLast shoplist,Self
	End Method
	Method AddProduct(productname$)
		p=New producttype
		p.name$=productname$
		ListAddLast productlist,p
	End Method
End Type
Global s:shop

Type producttype
	Field name$
End Type
Global p:producttype

' ===================================

s=New shop
s.shoptype$="The Butchers"
s.AddProduct "Sausages"
s.AddProduct "Bacon"
s.AddProduct "Pork"

s=New shop
s.shoptype$="The Bakers"
s.AddProduct "Bread"
s.AddProduct "Cakes"
s.AddProduct "Buns"

s=New shop
s.shoptype$="Post Office"
s.AddProduct "Stamps"
s.AddProduct "Envelopes"
s.AddProduct "Stationery"

' show lists
For s=EachIn shoplist
	Print s.shoptype$
	For p=EachIn s.productlist
		Print "  > "+p.name$
	Next
Next