X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fnaive_node_list.ml;h=91d07e0614d5e8aba6cae357763cc6d511359595;hp=c14873211347503bd6e6b54fb030a0729d6c0059;hb=a96c64d15866719b4c8eb6d98ad7f1fc948e7636;hpb=3406b26f1ea26a997d7f194c547439891c108ce6 diff --git a/src/naive_node_list.ml b/src/naive_node_list.ml index c148732..91d07e0 100644 --- a/src/naive_node_list.ml +++ b/src/naive_node_list.ml @@ -13,46 +13,4 @@ (* *) (***********************************************************************) - -type node = Naive_tree.node -type cell = { node : node; - mutable next : cell } - - -type t = { mutable length : int; - mutable head : cell; - mutable last : cell; } - -let rec nil = { node = Naive_tree.nil; - next = nil } - -let create () = { length = 0; - head = nil; - last = nil } - -let iter f l = - let rec loop c = - if c != nil then begin - f c.node; - loop c.next - end - in - loop l.head - - -let length l = l.length - - -let add n l = - let ncell = { node = n; - next = nil } - in - if l.last == nil then - { length = 1; - head = ncell; - last = ncell } - else - let () = l.last.next <- ncell in - { length = l.length + 1; - head = l.head; - last = ncell } +include Deque.Make (struct type t = Naive_tree.node end)