Bonjour à tous ,
voici une image ppm :
P3
#truc.ppm
4 4
15
0 0 0 0 0 0 0 0 0 15 15 0
0 0 0 0 15 7 0 0 0 0 0 0
0 0 0 0 0 0 0 15 7 0 0 0
15 15 0 0 0 0 0 0 0 0 0 0
Il faut qu'elle soit stockée dans une liste chainée de la manière suivante :
[red][green][blue] [nombre d'occurence de la couleur]
000 3 -----> 1500 1 -----> 000 1 -----> 0157 1 -----> 000 4 -----> 0157 1 -----> 000 1 -----> 15150 1 -----> 000 3 /

une image doit comprendre une largeur et une hauteur ( 4 et 4 pour l'exemple si dessus )
la valeur max d'une couleur : 15 pour cet exemple
ainsi qu'une liste chaînée comme représentée si dessus

je vous montre donc les classes que j'ai crée , mon problème est que je n'arrive pas à lire le fichier et mettre les informations dans ma liste chaînée...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Image {
 
	private int largeur , hauteur ;
	private int valeurMax ;
	private Liste listeSegment = new Liste() ;
 
	public Image(String nomFichier) {
		FileInputStream fichier ;
		int c ;
		try{
			fichier = new FileInputStream("images/"+nomFichier) ;
			BufferedReader f = new BufferedReader(fichier);
			f.readLine();
			f.readLine();
			String s = f.readLine();
			String[] split = s.split(" ");
			this.largeur = Integer.parseInt(split[0]);
			this.hauteur = Integer.parseInt(split[1]);
			this.valeurMax = Integer.parseInt(f.readLine());			
			System.out.println("Hauteur : "+this.hauteur + "\n largeur :"+ this.largeur 
								+ "\n valeurmax : "  + this.valeurMax);
 
			fichier.close();
 
			}
		}catch(FileNotFoundException ex){
			System.out.println("Fichier n'existe pas");
		}catch(IOException exc){
			System.out.println("Erreur d'entrée sortie");
		}
	}
// setteurs et getteurs ...
Le code de la Liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class Liste {
	Segment premier;
 
	public boolean estVide() {
		return premier == null;
	}
 
	public Segment getPremier() {
		return premier;
	}
 
	public void ajouterALaFin(int red,int green,int blue , int n) {
		if (estVide()) {
			premier = new Segment(red,green,blue,n);
		} else {
			Segment dernier = getDernierElement();
			dernier.setSuivant(new Segment(red,green,blue,n));
		}
	}
 
 
	private Segment getDernierElement() {
		Segment dernier = premier;
		while (dernier.getSuivant() != null) {
			dernier = dernier.getSuivant();
		}
		return dernier;
	}
 
	public int getLongueur() {
		int longueur = 0;
		Segment elt = getPremier();
		while (elt != null) {
			longueur++;
			elt = elt.getSuivant();
		}
		return longueur;
	}
 
	public void concatener(Liste l) {
		if (this.estVide()) {
			this.premier = l.premier;
		} else {
			Segment dernier = getDernierElement();
			dernier.setSuivant(l.getPremier());
		}
	}
 
	public void ecrireListe() {
		System.out.print("[");
		Segment elt = getPremier();
		while (elt.getSuivant() != null) {
			System.out.print("(" + elt.getRed()+","+elt.getGreen()+","+elt.getBlue()+")");
			elt = elt.getSuivant();
		}
		System.out.println("(" + elt.getRed()+","+elt.getGreen()+","+elt.getBlue()+")" + "]");
	}
 
}
ensuite le code de Segment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class Segment {
	private int red,green,blue;
	private int nombre ;
	private Segment suivant;
 
	public Segment(int red,int green,int blue , int n, Segment suivant) {
		this.red = red;
		this.green = green;
		this.blue = blue;
		this.nombre = n;
		this.suivant = suivant;
	}
 
	public Segment(int red,int green,int blue , int n) {
		this.red = red;
		this.green = green;
		this.blue = blue;
		this.nombre = n;
		this.suivant = null;
	}
 
	public int getRed() {
		return red;
	}
	public void setRed(int red) {
		this.red = red;
	}
 
	public int getGreen() {
		return green;
	}
	public void setGreen(int green) {
		this.green = green;
	}
 
	public int getBlue() {
		return blue;
	}
	public void setBlue(int blue) {
		this.blue = blue;
	}
 
	public int getNombre() {
		return nombre;
	}
 
	public void setNombre(int nombre) {
		this.nombre = nombre;
	}
 
	public Segment getSuivant() {
		return suivant;
	}
 
	public void setSuivant(Segment suivant) {
		this.suivant = suivant;
	}
}

Edit : Je me suis trompé de forum , je voulais dans le débuter de General Java