Vous êtes sur la page 1sur 3

Primitives essentielles sur les listes linéaires bidirectionnelles

(doublement chainées)- version 2


Déclaration
struct *element
{
int info;// le type peut être simple ou composé
element *precedent;
element *suivant;
}

Primitives
1-Insertion au début de la liste
void insererDebut(element *& debut, int x)
{
element *nouveau=new element;
nouveau ->info=x;
nouveau->suivant=debut;
nouveau->precedent=NULL;

if(debut !=NULL)
{
debut->precedent=nouveau;
}
debut=nouveau;
}

2-Insertion à la fin de la liste


void insererFin(element *& debut, int x)
{
element *nouveau=new element;
nouveau ->info=x;

if(debut==NULL)
{
nouveau->suivant=NULL;
nouveau->precedent=NULL;
debut=nouveau;
}
else
{
element *courant=debut;
while(courant->suivant!=NULL)
Courant=courant->suivant;
Courant->suivant=nouveau;
nouveau->precedent=courant;
nouveau->suivant=NULL;
}
}

3-Insertion à l’intérieur de la liste après l’élément d’adresse courant


void insererMilieuApres(element *courant, int x)
{
element *nouveau=new element;
nouveau ->info=x;
nouveau->suivant=courant->suivant;
nouveau->suivant->precedent=nouveau;
nouveau->precedent=courant;
courant->suivant=nouveau;
}

4-Suppression en début de liste


void supDebut(element *&debut)
{
if (debut==NULL)
cout<<”Liste vide !”;
else if (debut->suivant==NULL)
{
delete debut;
debut=NULL;
}
else
{
element* temp=debut;
debut=debut-> suivant;
debut->precedent=NULL;
delete temp;
}
}

5-Suppression à la fin de la liste


void supFin(element *&debut)
{
if (debut==NULL)
cout<<”Liste vide !”;
else if (debut->suivant==NULL)
{
delete debut;
debut=NULL;
}
else
{
element* courant=debut;
while(courant->suivant !=NULL)
courant=courant->suivant;
courant->precedent->suivant=NULL;
delete courant;
}
}

6-Suppression à l’intérieur de la liste d’un élément d’adresse courant


void supMilieuCourant(element *courant)
{
courant->precedent->suivant=courant->suivant;
courant->suivant->precedent=courant->precedent;
delete courant;
}

Autres types de listes


a-Les listes linéaires chainées circulaires (anneaux)
Une liste circulaire est une liste linéaire chainée dont le dernier élément pointe sur le premier
de la liste.

b-les listes linéaires représentées par tableaux


Les listes linéaires peuvent être représentées par des tableaux contigus utilisant les faux
pointeurs qui sont les indices de localisation des éléments de la liste dans le tableau.

Vous aimerez peut-être aussi