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
|
t_rep *trie_ins(t_rep *ins, t_rep *ls, t_rep *cur, t_rep *prev)
{
if(my_strcmp(cur->str, ins->str) == -1)
{
ins->nxt = cur;
if (prev != NULL)
prev->nxt = ins;
return ((ls != NULL) ? ls : ins); /* debut de la sous liste triee*/
}
else if (cur->nxt != NULL)
{
return ((ls != NULL) ? trie_ins(ins, ls, cur->nxt, cur) : trie_ins(ins, cur, cur->nxt, cur));
}
/*envoie de ls sinon cur si pas de ls*/
else /*on le met a la fin*/
{
cur->nxt = ins;
ins->nxt = NULL;
return ((ls != NULL) ? ls : cur); /* debut de la ls*/
}
}
t_rep *triInsert(t_rep *ls)
{
if (ls->nxt != NULL)
return (trie_ins(ls, NULL, triInsert(ls->nxt), NULL));
else
return (ls);
/* Si ls->nxt == NULL c ke fo trier le last elem, cad le first kje ve inserer dans ls*/
/* Sinan, jinsere l'elem dans la list formee par le tri des elem qui suivent*/
/* Jstart dc a classer les elements en partant du last de la liste originelle*/
} |
Partager