Tutorial listes chainées

Soyez le premier à donner votre avis sur cette source.

Vue 15 347 fois - Téléchargée 976 fois

Description

Suite de mon tutorial:
http://codes-sources.commentcamarche.net/faq/200-delphi-declarer-et-utiliser-les-pointeurs

J'ai codé et commenté des fonctions pour listes chainées simples.
Ce sont des opérations basiques tel que l'insertion, la suppression, l'inversion ou l'accès dans une listes chainées.
Je peux, à la demande, ajouter d'autre fonction comme la recherche, l'ajout en tête, le tri, ou même des fonctions pour les listes doublement chainées, circulaires, etc...

Conclusion :


Déclarer "ListesChainees" dans les uses vous pourrez alors vous servir des fonctions contenues dans "ListesChainees.pas".

Ce fichier est à modifier. Par exemple, le contenu de la liste chainée est de type "MonType". vous remplacez "MonType" par ce que vous voulez.

Exemple:
MonType = Integer; // Par défaut
MonType = Single;
MonType = String;
MonType = ^Word;

TEnregistrement = record
Truc: integer;
Machin: string;
end;

MonType = TEnregistrement;

Les pointeurs utilisés doivent être de type "pList" (vous pouvez aussi le modifiez).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Très bien.
Et avec tout cela, il est même plus envisageale de créer une classe pour se simplifier la vie.
Mais, dans le cas présent cela n'est pas indispensable puisque Delphi implémente déjà un type TList qui, en plus de son côté "bricolé", implémente un alogrythme de tri (Quick sort).

Je dis "bricolé" car dans le fichier Classes on voit cela:
PPointerList = ^TPointerList;
TPointerList = array[0..MaxListSize - 1] of Pointer;

et ensuite
TList = class(TObject)
private
FList: PPointerList;
FCount: Integer;
FCapacity: Integer;

Ce n'est donc pas vraiment une liste chaînée puisque la classe utilise un tableau.

Beau travail, CptPingu.
Florent
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24 -
Beau travail cptPingu.
Manipuler des pointeurs : est-ce vraiment du niveau débutant ?
Allez, un (vrai) petit tuto sur les listes chainées et ce sera parfait.

Florenth : "alogrythme", c'est comme ça qu'on appelle un algorithme bricolé ? lol
Delphiprog > Je suis content de t'avoir apris un nouveau mot ;-) (c'est d'ailleurs la seule chose que je pourrais t'apprendre)

Sinon, en y repensant, j'ai critiqué la classe TList de Borland mais il y a peut-être un truc: derrière le mot-clef "array" se cache sûrement un système de liste chainée (parce que dans la ram, c'est le seul moyen efficace de stocker les données).

A voir ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.