| 12
 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
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 
 | #include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
 
#include "ListeChaineeSimple.h"
 
 
void afficher(Liste *tete){
	Liste *p;
	p = tete;
	printf("Début de l'affichage \n");
	while(p!=NULL){
		printf("%d \n",p->valeur);
		p = p->suiv;
	}
	printf("Fin de l'affichage \n");
}
 
 
void ajouterEnTete(Liste **tete, int x){
 
	Liste *nouvelElement = malloc(sizeof(Liste));
 
	nouvelElement->valeur = x;
	nouvelElement->suiv = *tete;
	*tete = nouvelElement;
 
}
 
void ajouterEnQueue(Liste **tete, int x){
 
	Liste *pp, *p, *nouvelElement;
	p = *tete;
	pp = p;
	if(*tete == NULL){
		//cas d'une liste vide
		ajouterEnTete(tete, x);
	}else{
		while(p!=NULL){
			pp = p;
			p = p->suiv;
		}
 
		nouvelElement = malloc(sizeof(Liste));
		nouvelElement->valeur = x;
		if(nouvelElement == NULL){
			printf("L'allocation a échouée");
		return;
		}
		nouvelElement->suiv = NULL; //facultatif
		pp->suiv = nouvelElement;
 
	}
 
}
 
void insererEnOrdre(Liste **tete, int x){
 
	Liste *p, *pp, *nouvelElement;
 
	p = *tete;
	pp = p;
	//printf("(x, tete.val) = (%d , %d )\n", (*tete)->valeur, x);
	if(*tete == NULL){
				printf("1 ");
		ajouterEnTete(tete, x);
	}else{
		while(p!=NULL && x > p->valeur){
			pp = p;
			p = p->suiv;
		}
		if(p!=NULL && x == p->valeur){
			//on insert pas x ici, mais on peut bien choisir de l'inserer aussi
			//dans ce cas on le fais dans le cas précédent
			printf("%d existe déjà ",x);
			return;
		}else{
			nouvelElement = malloc(sizeof(Liste));
			nouvelElement->valeur = x;
			if(p!=NULL && x < p->valeur){
				//insertion de x avant p et après pp 
				nouvelElement->suiv = p;
				pp->suiv = nouvelElement;
			}else{
				//insertion en queue
				//nouvelElement->suiv == NULL;
				pp->suiv = nouvelElement;
			}
		}
	}
 
} | 
Partager