class GBN_LNODE [G,H] -- actually, G is the only relevant type, -- H for edges, but need to pass GBN_LGRAPH [G,H] type. creation {GBN_LGRAPH} make feature {NONE} make (inl, outl: BOOLEAN; graph : GBN_LGRAPH [ G, H ] ) is -- graph is the hinterland to protect, also -- provides uf_marker require inorout : inl or outl nonvoid : graph /= Void do uf_marker := graph.uf_marker if inl then !! inlist.make end if outl then !! outlist.make end end feature {GBN_LGRAPH} outlist, inlist : GBN_DLIST [ GBN_LEDGE [ G, H ] ] graph_place : GBN_DLIST_PLACE [ like Current ] uf_marker : GBN_UF_ELEMENT item : G index : INTEGER put ( x: G) is do item := x end put_index ( i : INTEGER ) is do index := i end set_place ( p : GBN_DLIST_PLACE ) is do graph_place := p end wipe_out is do uf_marker := Void index := -1 inlist := Void outlist := Void end end -- class GBN_LNODE