Bonjour,

j'aimerais avoir votre avis sur la conception d'une structure.

je souhaite, dans mon programme, lire un texte et enregistrer chaque nouveau mot dans une liste. Exemple : "le chien mange le chat" ==> "le chien mange chat"

Pour ce faire voici mes déclarations de structure de données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Type Element= POINTER TO RECORD
					mot: ARRAY 50 OF CHAR;
					suivant: Element;
				END;
ListeMots = RECORD 
			début: Noeud;
		END;
Ici j'établis ma structure de données et je crée un pointeur en tête de liste.

Ensuite j'ai une procédure me permettant d'ajouter un mot dans ma 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
 
PROCEDURE (VAR liste: ListeMots)AjouterMot*(m: ARRAY 50 OF CHAR), NEW;
VAR courant, precedent: Element;
BEGIN
	courant:=liste.début;
	WHILE (courant # NIL) & (m$ # courant.mot$) DO precedent:=courant; courant:=courant.suivant; END;
	IF courant = NIL THEN 
		NEW(courant);
		courant.mot := m$;
		IF liste.début # NIL THEN precedent.suivant:=courant; ELSE liste.début:=courant; END;
	ELSE
		(*rien pour le moment*)
	END;
END AjouterMot;
Cette procedure et ce traitement fonctionnent. Cependant d'après vous s'agit-il d'une liste simplement chaînée ou doublement chaînée ?

Merci.