#include <stdio.h>
#include <stdlib.h>


typedef struct chaine2 chaine2;
struct chaine2
{
    char *tab[5];
    chaine2 **suiv;

};

typedef struct chaine1 chaine1;
struct chaine1
{
    char id;

    chaine2 **val;//tableau de pointeur -_-
    chaine1 **suiv;//tableau de pointeur -_-
};

void permut(char *tab)  //permut de (13524)
{
    char temp;
    temp = tab[1];
    tab[1] = tab[3];
    tab[3] = tab[5];
    tab[5] = tab[2];
    tab[2] = tab[4];
    tab[4] = temp;


}

void push( chaine1 *clara, char n)
{

    chaine1 *katsumi;
    chaine2 *morgane;

    katsumi->suiv = NULL;
    katsumi->id = n;
    katsumi->val = &morgane;// y'a de quoi etre content, non?
    morgane = NULL;
    clara->suiv = &katsumi;
    clara = *clara->suiv;
}

void hachage(chaine1 *clara, char *tableau[5])
{
    chaine2 *temp;
    temp = (chaine2*) malloc( sizeof(chaine2));
    clara->val;//creer nouveau maillon ds la sous boucle
    permut( tableau[5]);//appelle la fct de permutation
    while( *tableau[0] != clara->id)
    {
        clara = *clara->suiv;
    }
    &clara->val->tab[5] = tableau[5]; //on met la permutation dans la sous chaine circulaire
    &clara->val->suiv = temp;
}


int main()
{
    long i;

    char tab[5]= {aerlm};

    chaine1 clara, head;
    clara.suiv = NULL;
    clara.id = 1;
    clara.content = chaine2 morgane;
    morgane = NULL;
    head = clara; //head permet de stocker le premier maillon de la liste circulaire

    for( i = 1 ; i < 5 ; i++)// creation des maillons
    {
        push( &clara, tab[i-1]);
    }

    clara.suiv = head; //la boucle est bouclée !
    hachage(clara, tab[5]);
}







}
