/*
----------------------------------------------------------------
Y. CIURLIK & A. DUCHENE - Projet Compil - M1GMI
-------------------------------------------------------------------
*/
#include "liste.h"

/**
 * Ajoute un element a la fin de la liste
 * Retourne la nouvelle liste
**/
trans* ajouter(trans *liste, int etat_arr, char lettre) {
    trans *pCourant;		// d�inition d'un pointeur courant
	trans *nouvelle_transition;
	// Allocation et initialisation de la nouvelle transition
	nouvelle_transition = (trans*) malloc(sizeof(trans));
	if (nouvelle_transition == NULL) {
		printf("ERROR malloc : Impossible d'allouer de la memoire\n");
		exit(11);
	}
	nouvelle_transition->lettre = lettre;
	nouvelle_transition->etat_arr = etat_arr;
	nouvelle_transition->suivant = NULL;
	
	// Si la liste est vide
	if (liste == NULL) {
		return nouvelle_transition;
	} else {
		pCourant = liste;
		// parcours de la liste cha�� jusqu'au dernier noeud
		while(pCourant->suivant != NULL) {
			pCourant = pCourant->suivant;
		}
		// Attachement a la liste
		pCourant->suivant = nouvelle_transition;
		return (liste);
	}
}

void afficherListe(trans* liste) {
    trans *pCourant;		// d�inition d'un pointeur courant
    
    
    if (liste != NULL) {
    	pCourant = liste;
		while(pCourant->suivant != NULL) {
			printf("etat d arrivee : %d\n", pCourant->etat_arr);
			printf("lettre : %c\n", pCourant->lettre);
			pCourant = pCourant->suivant;
		}
		printf("etat d arrivee : %d\n", pCourant->etat_arr);
		printf("lettre : %c\n", pCourant->lettre);
	}
}
