DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des files, piles, listes et tableaux / Fonctions de gestion des files, piles, listes
  • Propriétés WLangage utilisables avec le type Pile
  • Fonctions WLangage de gestion des piles
  • Les piles et le multithread
  • Parcours des piles
  • Cas particuliers
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Une variable de type Pile est un type structuré qui permet de regrouper une série d'éléments du même type. Les éléments sont ajoutés à la fin de la pile et sont récupérés du plus récent au plus ancien.
Par exemple, si les éléments sont ajoutés dans l'ordre suivant : 1, 2, 3, ils seront récupérés dans l'ordre suivant : 3, 2, 1.
Exemple
MaPile est une Pile d'entiers
 
// On empile les valeurs 1, 2 et 3
Empile(MaPile, 1)
Empile(MaPile, 2)
Empile(MaPile, 3)
 
// Affichage de la trace : 3, 2, 1
x est un entier
TANTQUE Dépile(MaPile, x)
Trace(x)
FIN
Syntaxe

Déclarer et initialiser une pile Masquer les détails

<Nom de la pile> est [une] Pile de <Type des éléments de la pile>
<Nom de la pile> :
Nom de la variable Pile à déclarer.
<Type des éléments de la pile> :
Type des éléments constituant la pile.
Tous les types de variables peuvent être utilisés y compris les tableaux, les tableaux associatifs, les files, les piles et les listes. Par exemple :
<variable> est une pile de tableaux d'entiers

<variable> est une pile de tableaux fixes de 5 entiers

<variable> est une pile de tableaux associatifs d'entiers

<variable> est une pile de files d'entiers

<variable> est une pile de piles d'entiers

<variable> est une pile de listes d'entiers
Remarques

Propriétés WLangage utilisables avec le type Pile

Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type Pile.
Nom de la propriété
Effet
AjoutTerminéRenvoie et modifie le mode d'ajout des éléments.
Cette propriété est utilisée pour la gestion du multithread.
NbThreadAttenteRenvoie le nombre de threads en attente.
Cette propriété est utilisée pour la gestion du multithread.
OccurrenceRenvoie le nombre d'occurrences de la pile.
Vide
  • Vrai si la pile est vide,
  • Faux dans le cas contraire.

Fonctions WLangage de gestion des piles

Les fonctions suivantes peuvent être utilisées pour manipuler une variable de type Pile.
DépileDépile un élément d'une pile.
DésérialiseDésérialise un buffer ou une chaîne de caractères contenant les données d'une classe, d'une structure, d'un tableau (y compris un tableau associatif), d'une file, d'une pile, une liste ou une variable d'un type avancé et leurs sous-éléments.
EmpileEmpile un élément dans une pile.
PileInfoRécupère les caractéristiques d'une pile : types des éléments et nombre d'éléments.
SérialiseTransforme les éléments suivants dans un format spécifique :
  • une structure (et ses sous-éléments),
  • une classe (et ses sous-éléments),
  • un tableau (y compris les tableaux associatifs),
  • une file,
  • une pile,
  • une liste.
SupprimeToutSupprime tous les éléments :
  • d'un tableau WLangage à une dimension ou deux dimensions.
  • d'un tableau associatif.
  • de la propriété tableau d'un type avancé (tableau des événements de gglAgenda, ...).
  • d'une file WLangage.
  • d'une pile WLangage.
  • d'une liste WLangage.

Les piles et le multithread

La gestion du multithread est prise en compte lors de l'ajout et de la suppression d'un élément (fonctions Empile et Dépile).
Il est également possible d'utiliser les propriétés lors d'une gestion multithread mais le résultat n'est pas permanent. Par exemple :
SI MaPile.Occurrence > 0 ALORS
// Quand le thread arrive ici, la pile peut être vide
FIN

Parcours des piles

Il est possible d'utiliser la syntaxe POUR TOUT pour parcourir les piles. Les éléments sont parcourus dans l'ordre de dépilage qui est également l'ordre inverse de l'ordre d'empilage.
La syntaxe utilisée correspond à celle utilisée pour les tableaux :
POUR TOUT [ELEMENT] <Variable> [, <Compteur> [, <Compteur>]] DE <Pile>
...
FIN
Les éléments peuvent être modifiés pendant le parcours. En cas de modification de la pile pendant un parcours, les éléments parcourus seront ceux présents lors de l'initialisation du parcours :
  • si des éléments sont empilés après l'initialisation du parcours, ils ne seront pas parcourus.
  • si des éléments sont dépilés après l'initialisation du parcours, ils seront quand même parcourus.

Cas particuliers

  • Sous le débogueur, le contenu de la pile est affiché dans l'ordre de dépilement.
  • Une pile peut être utilisée pour typer un paramètre de procédure.
  • Une pile peut être copiée avec l'opérateur '='. Il est également possible de copier une instance de classe ou de structure contenant une pile.
  • Une pile peut être initialisée par une liste d'éléments dans l'ordre d'empilage.
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale