...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

...

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:37, modifié 1 fois.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Add ajoute un élément APRES la position courante
Insert ajoute un element AVANT la position courante

Si tu est en 10, Add ajoute l'élément en 11
Insert ajoute l'élément en 9

C'est ce que je comprends :)
Chris :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Add ajoute un élément à la fin de la linkedlist, non ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

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.

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
Add ajoute un element APRES la position courante, et pas en fin de liste.

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
Par contre, j'avais pas fait attention, mais la liste est lue en ordre ascendant avec Add, et descendant avec Insert.



Chris :)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:37, modifié 1 fois.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

C'est vrai que c'est un peu bizarre comme truc.

Moi, j'aurais plutôt vu ça comme ça:
InsertElement() 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).
Parce que là, je ne vois pas vraiment l'intérêt d'avoir deux fonctions pratiquement similaires

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 :)
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

...,

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.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

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 :)
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

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
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.

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.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

fweil a écrit :C'est tout simple non ?
C'est toi qui le dit :lol:

Chris :)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:38, modifié 1 fois.
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

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.
Répondre