Charakterbewegungen hinzugefügt, Deko hinzugefügt, Kochrezepte angepasst
This commit is contained in:
parent
95945c0306
commit
a0c893ca0b
1124 changed files with 64294 additions and 763 deletions
32
mods/futil/data_structures/sparse_graph.lua
Normal file
32
mods/futil/data_structures/sparse_graph.lua
Normal file
|
@ -0,0 +1,32 @@
|
|||
local f = string.format
|
||||
|
||||
local SparseGraph = futil.class1()
|
||||
|
||||
function SparseGraph:_init(size)
|
||||
self._size = size or 0
|
||||
self._adj_by_vertex = futil.DefaultTable(function()
|
||||
return futil.Set()
|
||||
end)
|
||||
end
|
||||
|
||||
function SparseGraph:size()
|
||||
return self._size
|
||||
end
|
||||
|
||||
function SparseGraph:add_vertex()
|
||||
self._size = self._size + 1
|
||||
end
|
||||
|
||||
function SparseGraph:add_edge(a, b)
|
||||
assert(1 <= a and a <= self._size, f("invalid vertex a %s", a))
|
||||
assert(1 <= b and b <= self._size, f("invalid vertex b %s", b))
|
||||
self._adj_by_vertex[a]:add(b)
|
||||
end
|
||||
|
||||
function SparseGraph:has_edge(a, b)
|
||||
assert(1 <= a and a <= self._size, f("invalid vertex a %s", a))
|
||||
assert(1 <= b and b <= self._size, f("invalid vertex b %s", b))
|
||||
return self._adj_by_vertex[a]:contains(b)
|
||||
end
|
||||
|
||||
futil.SparseGraph = SparseGraph
|
Loading…
Add table
Add a link
Reference in a new issue