Faut toter dans la vie ajoute des fichiers dev et src
This commit is contained in:
BIN
TP_DEV3.2/File/Fusion.class
Normal file
BIN
TP_DEV3.2/File/Fusion.class
Normal file
Binary file not shown.
82
TP_DEV3.2/File/Fusion.java
Normal file
82
TP_DEV3.2/File/Fusion.java
Normal file
@@ -0,0 +1,82 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Fusion<T extends Comparable<T>> {
|
||||
|
||||
|
||||
private Queue<T> scinder(Queue<T> file){
|
||||
|
||||
Queue<T> moitie = new LinkedList<>();
|
||||
|
||||
int taille = file.size()/2;
|
||||
|
||||
for(int i=0; i<taille; i++){
|
||||
|
||||
|
||||
moitie.add(file.remove());
|
||||
|
||||
}
|
||||
|
||||
return moitie;
|
||||
|
||||
}
|
||||
|
||||
private Queue<T> fusionner(Queue<T> file1, Queue<T> file2){
|
||||
|
||||
Queue<T> fusion = new LinkedList<>();
|
||||
|
||||
while(!file1.isEmpty()&&!file2.isEmpty()){
|
||||
|
||||
if (file1.peek().compareTo(file2.peek()) <= 0){
|
||||
|
||||
fusion.add(file1.remove());
|
||||
|
||||
}
|
||||
|
||||
else{
|
||||
|
||||
fusion.add(file2.remove());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fusion.addAll(file1);
|
||||
fusion.addAll(file2);
|
||||
|
||||
return fusion;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private Queue<T> trier(Queue<T> file){
|
||||
|
||||
if(file.size()<=1){
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
Queue<T> moitie = scinder(file);
|
||||
Queue<T> gauche = trier(moitie);
|
||||
Queue<T> droite = trier(file);
|
||||
|
||||
return fusionner(gauche,droite);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Queue<Integer> file = new LinkedList<>();
|
||||
file.add(5);
|
||||
file.add(2);
|
||||
file.add(9);
|
||||
file.add(1);
|
||||
|
||||
Fusion<Integer> tri = new Fusion<>();
|
||||
Queue<Integer> resultat = tri.trier(file);
|
||||
|
||||
System.out.println("File triée : " + resultat);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
59
TP_DEV3.2/File/MaFileChainee.java
Normal file
59
TP_DEV3.2/File/MaFileChainee.java
Normal file
@@ -0,0 +1,59 @@
|
||||
public class MaFileChainee<E> extends AbstractQueue<E> implements Queue<E> {
|
||||
|
||||
private static class Node<E> {
|
||||
E valeur;
|
||||
Node<E> suivant;
|
||||
|
||||
|
||||
Node(E valeur){
|
||||
|
||||
this.valeur=valeur;
|
||||
}
|
||||
|
||||
private Node<E> tete = null;
|
||||
private Node<E> queue = null;
|
||||
private taille = 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
private boolean offer(E e){
|
||||
|
||||
|
||||
Node<E> nouveau= new Node<>(e);
|
||||
|
||||
|
||||
if(queue==null){
|
||||
|
||||
|
||||
tete=nouveau;
|
||||
queue=nouveau;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
queue=nouveau;
|
||||
queue.suivant=nouveau;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
taille++;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user