Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kaawan-d20/dpf-2024-binarytree

đŸ« Code OCaml du projet de Programmation Fonctionnelle de L2S4
https://github.com/kaawan-d20/dpf-2024-binarytree

binary-tree functional-programming ocaml university-project

Last synced: about 1 month ago
JSON representation

đŸ« Code OCaml du projet de Programmation Fonctionnelle de L2S4

Awesome Lists containing this project

README

        

# Devoir de Programmation Fonctionnelle 2023-2024 BinaryTree

Ce repository contient le code OCaml đŸ« du projet de Programmation Fonctionnelle de L2S4 du meilleur groupe d'Etudiants de la fac d'info d'OrlĂ©ans :)

- Dany Dudiot
- Agathe Papineau
- Nathan Rissot

Ce devoir est dĂč au plus tard pour le **21 avril 2024**, sous la forme d'une Archive nommĂ©e `DUDIOT-PAPINEAU-RISSOT.zip` du dossier /squelette. il ne devra pas contenir de fichier prĂ©-compilĂ© (`dune clean` avant de compresser).

> ⚠ Il est demandĂ© de **ne changer aucun nom de fichier** et d’utiliser **uniquement** les fichiers fournis.

## Description

L’objectif de ce projet est de concevoir une **structure de donnĂ©es** reprĂ©sentant un tableau de $n$ entiers sous forme **d’arbre binaire** et permettant de rĂ©pondre **efficacement** Ă  une requĂȘte donnĂ©e sur ce tableau, comme par exemple calculer la somme contenue dans un sous-tableau, la plus grande somme contenue dans un sous-tableau ou encore connaĂźtre le nombre de zĂ©ros dans un sous-tableau.

Dans l’arbre binaire, chaque **noeud** correspond Ă  un **intervalle du tableau** et stocke une information permettant de rĂ©pondre facilement Ă  une requĂȘte donnĂ©e.

Ces informations peuvent ĂȘtre de diverses formes mais auront toujours le point commun suivant :

Les noeuds contiendront dans tous les cas la valeur des bornes gauche et droite des intervalles qu’ils reprĂ©sentent.

La racine correspond ainsi Ă  l’intervalle $[0 ... n−1]$ du tableau et les feuilles aux intervalles $[i ... i]$ pour $0 ≀i ≀n −1$.

L’arbre est ensuite construit rĂ©cursivement en combinant les valeurs des deux noeuds enfants pour obtenir le noeud parent.

ex : maximum d'un sous tableau

```mermaid
graph TD
0[max = 1, \n intervalle 0...0]
1[max = -4, \n intervalle 1...1]
2[max = 6, \n intervalle 2...2]
3[max = 8, \n intervalle 3...3]

01[max = 1, \n intervalle 0...1]
23[max = 8n \n intervalle 2...3]

03[max = 3, \n intervalle 0...3]

01 --- 0
01 --- 1

23 --- 2
23 --- 3

03 --- 01
03 --- 23
```

## Organisation

Le dossier `\squelette` est un fichier de projet dune. c'est ce fichier qu'il faudra Zipper pour rendre.

Le fichier `\squelette\GROUPE.md` contient nos noms ainsi qu'un récapitulatifs de l'Organisation des tùches (CF ci dessous)

Le fichier `\squelette\README.md` contient un set d'instructions et de rappels du CM7 concernant l'utilisation de dune.

le dossier `\squelette\lib` contient les interface format `.mli` et le code au format `.ml` des différents modules a completer / implémenter

## RĂ©partitions des TĂąches

### Dany Dudiot :
- to be determined.

### Agathe Papineau :
- to be determined.

### Nathan Rissot :
- to be determined.