...
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Le Soldat Inconnu a écrit :Add ajoute un élément à la fin de la linkedlist, non ?
AddElement(ListeChainee())
Description
Ajoute un nouvel élément vide après la position actuelle de la liste ListeChainee(). Ce nouvel élément devient l'élément courant de la liste.
Add ajoute un element APRES la position courante, et pas en fin de liste.InsertElement(ListeChainee())
Description
Ajoute un nouvel élément avant la position de l'élément courant. Ce nouvel élément devient l'élément courant de la liste spécifiée
Code : Tout sélectionner
; NewList MaListe.s()
;
; For I = 0 To 9
; AddElement(MaListe())
; MaListe() = Str(I) + " --- "+Str(5)
; Next
;
; SelectElement(MaListe(),5)
; AddElement(MaListe())
; MaListe() = " --- " + Str(1000)
;
; ForEach MaListe()
; Debug MaListe()
; Next
NewList MaListe.s()
For I = 0 To 9
InsertElement(MaListe())
MaListe() = Str(I) + " --- "+Str(5)
Next
SelectElement(MaListe(),5)
InsertElement(MaListe())
MaListe() = " --- " + Str(1000)
ForEach MaListe()
Debug MaListe()
Next
Chris

C'est vrai que c'est un peu bizarre comme truc.
Moi, j'aurais plutôt vu ça comme ça:
Mais ce qui me gène le plus, c'est que la liste soit lue dans un sens pour AddElement(), et dans l'autre sens pour InsertElement(). A mon avis, ce serait bien un bug, cette histoire là.
En tout cas, c'est à prendre en compte pour l'utilisation des LinkedList()
Chris
Moi, j'aurais plutôt vu ça comme ça:
Parce que là, je ne vois pas vraiment l'intérêt d'avoir deux fonctions pratiquement similairesInsertElement() Insère un nouvel élément après, (ou avant, peu importe), l'élément courant.
AddElement() Insère un nouvel élément à la fin de la liste. (Quelle que soit la position actuelle du pointeur).
Mais ce qui me gène le plus, c'est que la liste soit lue dans un sens pour AddElement(), et dans l'autre sens pour InsertElement(). A mon avis, ce serait bien un bug, cette histoire là.
En tout cas, c'est à prendre en compte pour l'utilisation des LinkedList()
Chris

...,
On insère toujours avant et on ajoute après le pointeur. Non ?
Enfin si on ajoute qq chose, cela veut dire que l'on ne touche pas ce qu'il y a avant.
Alors que si on insère cela veut bien dire que l'on décale tout.
Maintenant il est possible de faire une insertion après le pointeur, en faisant un NextElement() puis un InsertElement().
Le seul truc qui peut manquer en fait c'est que AddElement() ajoute toujours à la fin, alors qu'on voudrait ajouter en plein milieu ... mais les linked listes n'ont pas vraiment d'indices d'éléments, hormis l'ordre dans lequel on les a mis.
Enfin bon ...
On insère toujours avant et on ajoute après le pointeur. Non ?
Enfin si on ajoute qq chose, cela veut dire que l'on ne touche pas ce qu'il y a avant.
Alors que si on insère cela veut bien dire que l'on décale tout.
Maintenant il est possible de faire une insertion après le pointeur, en faisant un NextElement() puis un InsertElement().
Le seul truc qui peut manquer en fait c'est que AddElement() ajoute toujours à la fin, alors qu'on voudrait ajouter en plein milieu ... mais les linked listes n'ont pas vraiment d'indices d'éléments, hormis l'ordre dans lequel on les a mis.
Enfin bon ...
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Non, pas d'accord:
Insérer veut dire mettre une chose parmi d'autres, intercaler, introduire, glisser entre...().
Insérer une feuille dans un cahier, c'est-à-dire mettre la feuille entre les autres feuilles..., parmi les feuilles..., au milieu d'autres feuilles.
On n'insère pas un objet en le mettant simplement par dessus d'autres objets. Il y a une notion de position, même si elle n'est pas évidente et définie
Ajouter, c'est mettre quelque chose en plus, sans véritable notion de position. On peut ajouter un objet à une pile d'objets en le mettant simplement au dessus
Chris
Insérer veut dire mettre une chose parmi d'autres, intercaler, introduire, glisser entre...().
Insérer une feuille dans un cahier, c'est-à-dire mettre la feuille entre les autres feuilles..., parmi les feuilles..., au milieu d'autres feuilles.
On n'insère pas un objet en le mettant simplement par dessus d'autres objets. Il y a une notion de position, même si elle n'est pas évidente et définie
Ajouter, c'est mettre quelque chose en plus, sans véritable notion de position. On peut ajouter un objet à une pile d'objets en le mettant simplement au dessus
Chris

Chris
Dans PureBasic, l'insertion d'un élémentprend soin que l'élément inséré appartienne bien à la liste, et soit utilisable comme partie de ce tout. Il faut bien lui trouver une place, donc cette place c'est là où l'on est ... ce qui est plutôt logique.
Quant à la notion ajouter, pour être précis, elle peut nécessiter deux attitudes différentes :
- soit on ajoute là où l'on est et dans ce cas on doit déplacer tout ce qui suit, mais cela s'appelle une 'insertion' dans PureBasic
- soit on décide d'ajouter après tout ce qu'il y a, ce qui s'appelle souvent un 'append' dans les langages informatiques, et dans ce cas, l'ajout se fait par création d'une nouvelle place, celle-ci étant tout de suite utilisée pour y mettre ce que l'on ajoute.
C'est tout simple non ?
le InsertElement ne place pas un élément par dessus les autres, il le met là où on se trouve en déplaçant les éléments après plus loin. Ce qui est exactement le même principe que j'adopte lorsque j'insère une feuille dans un cahier. Sauf que quand j'insère une feuille dans un cahier, je ne la relie pas forcément aux autres en renumérotant toutes les pages et que dans ce cas je place finalement cette feuille par dessus les autres sans crier gare.Insérer veut dire mettre une chose parmi d'autres, intercaler, introduire, glisser entre...().
Insérer une feuille dans un cahier, c'est-à-dire mettre la feuille entre les autres feuilles..., parmi les feuilles..., au milieu d'autres feuilles.
On n'insère pas un objet en le mettant simplement par dessus d'autres objets. Il y a une notion de position, même si elle n'est pas évidente et définie
Dans PureBasic, l'insertion d'un élémentprend soin que l'élément inséré appartienne bien à la liste, et soit utilisable comme partie de ce tout. Il faut bien lui trouver une place, donc cette place c'est là où l'on est ... ce qui est plutôt logique.
Quant à la notion ajouter, pour être précis, elle peut nécessiter deux attitudes différentes :
- soit on ajoute là où l'on est et dans ce cas on doit déplacer tout ce qui suit, mais cela s'appelle une 'insertion' dans PureBasic
- soit on décide d'ajouter après tout ce qu'il y a, ce qui s'appelle souvent un 'append' dans les langages informatiques, et dans ce cas, l'ajout se fait par création d'une nouvelle place, celle-ci étant tout de suite utilisée pour y mettre ce que l'on ajoute.
C'est tout simple non ?
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Bon finalement c'est comme la démocratie, c'est peut être pas simple, mais quand on sait comment ça marche on s'y retrouve un peu !
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.