begin process at 2012 05 29 15:56:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

pile dynamique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pile dynamique

mardi 13 avril 2010 à 13:46:27 | pile dynamique

korin221

Bonjour! Voila j'ai un problème. Je voudrais mélanger ma pile dynamique de façon aléatoire. Peut on directement mélanger la pile ou alors passer la pile dans un tableau. Voici mon code :


int main(int argc, char *argv[])
{
int tab = 100;

pile_t * p;
int x,i;
p=init(10);

for (i=0;i<=20;i++)
{
empile(p,i); // permet d'empiler mes 21 chiffres
printf("%d",i);
}

printf("\n");

for (i=0;i<=20;i++)
{
tab[i]=depile(p,&x); // stock dans un tableau
printf("%d",tab[i]);
}
return 0;
}

Je ne sais pas si la méthode est la bonne , je vais me servir de cette pile pour un jeu de carte. Quand je stock dans mon tableau j'affiche que des 1 lors de la depile
( tab[i]=depile(p,&x) ).

Merci pour votre aide.
mardi 13 avril 2010 à 13:57:10 | Re : pile dynamique

deadhand

Re !
Il faudrait que tu montres ton code pour tes fonctions 'init', 'empile' , 'depile' pour résoudre ton problème !

Ensuite : tu peux initialiser ta piles avec deux autres : Tu dépile ta première pile et tu empile ce qui a été dépilé sur l'une ou l'autre de tes deux piles. Et ce jusqu'a ce qu'il en reste plus rien de ta première pile. Ensutie tu la recomposes en concatenant tes deux piles. Tu peux recommencer l'opération plusieurs fois pour bien mélanger. (Ca fait beaucoup de mot 'pile' :) )
mardi 13 avril 2010 à 14:06:37 | Re : pile dynamique

korin221

Voila mon code

pile_t * init(int pas)
{
pile_t * adr_pile = NULL;

adr_pile = (pile_t *)malloc(sizeof(pile_t));

if ( adr_pile )
{
adr_pile->n = -1;
adr_pile->pas = pas;
adr_pile->tete = 0;
adr_pile->sect = 0;
}

return adr_pile;
}

void empile(pile_t * p, variant x)
{
if ( vide(p) )
{
p->tete = (section_t *)malloc(sizeof(section_t));
p->sect = p->tete;
p->sect->tab = (variant *)malloc((p->pas) * sizeof(variant));
p->sect->suiv = 0;
p->sect->prec = 0;
}
else
{
if (!((p->n + 1) % (p->pas)))
{
p->sect->suiv = (section_t *)malloc(sizeof(section_t));
p->sect->suiv->prec = p->sect;
p->sect = p->sect->suiv;
p->sect->tab = (variant *)malloc((p->pas) * sizeof(variant));
p->sect->suiv = 0;
}
}
p->n = p->n + 1;
*(p->sect->tab + (p->n) % (p->pas)) = x;
}


unsigned short int depile(pile_t * p, variant * x)
{
unsigned short int succes = 0;

if ( !vide(p) )
{
*x = *(p->sect->tab + (p->n) % (p->pas));
p->n = p->n - 1;
if (!((p->n + 1) % (p->pas)))
{
if ( p->sect->prec != 0 )
{
p->sect = p->sect->prec;
free(p->sect->suiv);
p->sect->suiv = 0;
}
else
{
free(p->tete);
p->sect = 0;
}
}
succes = 1;
}
return succes;
}



Me je voulais savoir si on pouvais justement stocker la pile dans un tableau et apres mélanger le tableau et ensuite remettre le tableau dans la pile pasque la je voi pas comment faire pour utiliser plusieurs pile et les mélanger! J'ai fait tous mon code de jeux + le sdl mais la j'ai du mal avac la pile.. Merci!
mardi 13 avril 2010 à 14:39:52 | Re : pile dynamique

deadhand

Tu veux dire quoi par "p->sect" ?
mardi 13 avril 2010 à 14:54:36 | Re : pile dynamique

korin221

En faite c'est pour faire une section ou un maillon. Par exemple dans ce cas
p->sect->suiv = 0; sa veut dire qu'il n'y a pas de section qui va suivre et p c'est l'adresse de la pile


Cette discussion est classée dans : dynamique, int, tableau, tab, pile


Répondre à ce message

Sujets en rapport avec ce message

tableau char [ par dingue007 ] Voila je dois faire un prog en C++ : un tableau avec les mois de lannée et quand je tape un chiffre il me sort le mois ! mais je narrive pas a faire l tableau dynamique de structure en C ? [ par axl79 ] salutje voudrai faire un tableau dynamique de structures. voici ma structure: struct struct_arete { int sommet1; int sommet2; int quantite;} arete;com fonction d'alloaction dynamique [ par tomsawyerbelgique ] Pour une allocation dynamique d'un tableau à deux dimensions. Comme celle ci:cout // Initalisation int** tab = new int*[p_size1_tab]; for(in Blem Somme ELmt d'un Tableau Bidimensionnel [ par Orezza ] Slt c encore moi, le boulet de l'info...c tjrs le meme prog mais cette fois ci j'aimerais afficher la somme des elmts de mon tableaux.#include #includ Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le Tableau à 3 dimensions [ par VinceExtense ] Savez vous comment faire passer en paramètre un tableau à 3 dimensions ?void fonction1(int x,iny y,int z){int tab[x][y][z];}void fonction2(int ***tab, Allocation dynamique dans une fonction [ par Veovis ] Salut,Toujours dans mon projet de TP, j'ai un petit soucis avec l'allocation dynamique dans une fonction. Ce que je voudrais faire c'est quand le tabl tri tableau en ligne [ par TWITTI ] bonjour , je suis etudiant en mécanique et la programmtion c est embetant pour moi.J ai un probleme sur mon programme main().Je n arrive pas a faire Tableau en C [ par Mickylord ] Bonsoir a tous !Voici ma question :J'ai une fonction principale, main(), et une autre fonction tab(). Je voudrais déclarer un tableau dans la fonction plantage en utilisant le constructeur "new" [ par Ganaga ] Bonjour,J'utilise le constructeur new pour affecter un tableau d'entiers dans une boucle qui s'exécute plus de 10000x. Au bout d'un certain temps (lon


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales