Consultation

nada -  
 calibos -
Bonjour,
je connait que la création des tableau soit unidimensionnels ou multidimensionnels ne se fait que lorsque on connait d'avance la taille du tableau (int tab [6];); alors est ce qu' il existe une conception de gestion dynamique pour les tableaux càd créer un tableau au fur à mesuer dans la manipulation du programme qu'on ajoute un élément à chaque fois
merci d'avance

5 réponses

du crétin, point te moquer tu ne dois
 
Hello

rappel: il existe des langages où les tableaux sont redimensionnables... mais ce sont des langages "peu performants"

La liste chainée est en fait un enchainement d'éléments, chaque élément étant porteur de donnée(s) et de l'adresse de l'élément suivant, éventuellement on peut y rajouter l'adresse du premier élément et/ou l'adresse de l'élément précédent

ex: tu voulais un tableau où chaque élément contient
- code
- libellé
- valeur
- date

tu devras déclarer pour ta liste chainée
- code
- libellé
- valeur
- date
- adresse de l'élément suivant

quand tu voudras ajouter {400002 , "Quelque chose" , 2851,32 , 23-OCT-09}
tu devras ajouter {400002 , "Quelque chose" , 2851,32 , 23-OCT-09, null}
et dans le null de l'élément précédent tu devras mettre l'adresse de {400002 , etc...}

1. parcourir la liste chainée jusqu'à ce que adresse_element_suivant contient null
2. demander suffisament d'octets au système pour stocker un élément
3. le système te renvoie un pointeur
4. stocker ce pointeur dans adresse_element_suivant qui contient null
5. stocker les différentes valeurs dans l'élément pointé par adresse_element_suivant

comme je sais pas écrire du C, je te propose un "truc" en langage plus ou moins naturel

type maStruct(
code entier
libellé alphanum
valeur flottant
date date
adresse pointeur vers maStruct
)

ajouter_element(aCode, aLib, aVal, aDate, aListe)
si aListe ne contient pas null alors ajouter_element(aCode, alib, aVal, aDate, adresse indiqué par aListe)
sinon
allouer suffisament de mémoire pour contenir un maStruct
stocker l'adresse de ce bloc mémoire dans aListe
stocker aCode dans code indiqué par aListe
stocker aLib dans libellé indiqué par aListe
stocker aVal dans valeur indiqué par aListe
stocker aDate dans date indiqué par aListe
fin si
nb: aListe doit être passé par référence ! sinon, l'adresse du bloc mémoire n'est pas conservé et la liste reste perpétuellement vide

chercher_element(aCode, aListe) renvoie un pointeur vers maStruct
si aListe contient null alors renvoyer aListe
sinon si aCode est égal à code indiqué par aListe alors renvoyer aListe
sinon renvoyer chercher_element(aCode, adresse indiqué par aListe)

Voilà pour la mise en jambes... bien évidemment, grâce à google tu aurais pu trouver des cours et exemples mieux construits, plus pédagogues, mais ça, c'est une autre histoire ;-)

ps: si tu visualises mal, n'hésites pas à faire qqes croquis sur une feuille
1
Nabla's Messages postés 20731 Statut Contributeur 3 194
 
il y a 2 choses: soit tu crées le tableau en brute dans le code : int tab[6],
soti tu crées le tableau en dynamique dans le code tableau = new int [variable] ...

mais ce stableau ne sont pas redimentionnables...
pour avoir un truc redimentionnable, je t'oriente vers l'apprentissage des listes chainées
0
nada
 
bonjour
merci de me rendez compte, concernant votre réponse, qu'est ce cà vous dire les tableaux ne sont pas redimmentionnable, est ce que vous pouvez me donner un sur vol sur les liste chainées
merrrrrci
0
nadia
 
bonjour,
queen ????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
calibos
 
Bonjour,

En anglais, peut être?

http://richardbowles.tripod.com/cpp/linklist/linklist.htm

bye.
0