// sous-mot.c

// << Algorithmique du texte >>
// Maxime Crochemore, Christophe Hancart et Thierry Lecroq
// Vuibert, 2001.

#include <stdio.h>
#include "chl.h"
#include "sous-mot.h"


SousMot creerSousMot(Lettre a) {
   SousMot sm;

   sm = (SousMot)malloc(sizeof(struct _sousMot));
   if (sm == NULL) error("creerSousmot");
   sm->element = a;
   sm->suivant = NULL;
   return(sm);
}


SousMot ajouterAuDebutSousMot(SousMot z, Lettre a) {
   SousMot sm;

   sm = (SousMot)malloc(sizeof(struct _sousMot));
   if (sm == NULL) error("ajouterAuDebutSousmot");
   sm->element = a;
   sm->suivant = z;
   return(sm);
}


SousMot concatenerSousMot(SousMot u, SousMot v) {
   SousMot z;

   if (u == NULL)
      return(v);
   else {
      z = u;
      while (z->suivant != NULL)
         z = z->suivant;
      z->suivant = v;
      return(u);
   }
}


void ecrireSousMot(SousMot z) {
   while (z != NULL) {
      printf("%c", z->element);
          z = z->suivant;
   }
   printf("\n");
}