Pouknouki

'a Vector

Mar 29th, 2017
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.81 KB | None | 0 0
  1. (* VECTEUR DYNAMIQUE *)
  2.  
  3. type 'a vecteur = { mutable l:int; mutable i:int; mutable v: 'a vect };;
  4.  
  5. let vecteur e =
  6.     { l = 1; i = 0; v = [| e |] };;
  7.  
  8. let ajouter_vecteur v e =
  9.     if v.i = v.l - 1 then
  10.         begin
  11.             let r = (make_vect (2 * v.l) 0) in
  12.             for j = 0 to v.l - 1 do
  13.                 r.(j) <- v.v.(j);
  14.             done;
  15.             v.v <- r;
  16.                v.l <- 2 * v.l;
  17.         end;
  18.     v.i <- v.i + 1;
  19.     v.v.(v.i) <- e;;
  20.  
  21. let supprimer_element v ind =
  22.     v.i <- v.i - 1;
  23.     for i = ind + 1 to v.l - 1 do
  24.         v.v.(i - 1) <- v.v.(i);
  25.     done;;
  26.  
  27. let supprimer_fin v =
  28.     if v.i > -1 then v.i <- v.i - 1 else failwith "Vecteur vide.";;
  29.  
  30. let dans_vecteur v e =
  31.     let trouve = ref(false) in
  32.     for i = 0 to v.i - 1 do
  33.         if v.v.(i) = e then trouve := true
  34.     done;
  35.     !trouve;;
Advertisement
Add Comment
Please, Sign In to add comment