Algo avancé sur les piles et les files

kaizeus Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,c'est fabrice
je veux que vous m'aidier resoudre les algo suivants
-ecrire une fonction qui retourne l'element en milieu d'une pile et d'un fil
-ecrire une procedure qui permet d'echange l'element au fond d'un fil par l'element au dessus de celui-ci
A voir également:

10 réponses

berthelotn Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   11
 
bonjour

tu veux l'ago generique ???? ou dans un langage particulier

pour le deuxieme c'est juste un swap ou le but est que le premier et le dernier soi le meme?
0
berthelotn Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   11
 
moi je fairais comme cela aprés ça depend tu type de ta pile et de ta file

principe :

1er parcour complet pour connaitre la taille (a eviter si tu a une fonction qui te la donne )
2e parcour jusqua taille /2
puis retourne l'element

pour le truc du swap donne moi plus de renseignement si il y a un truc quii te va pas di le moi j'ai fai ça un peu vite


depiler: pile -> element
defiler: file -> element

algorithme fonction milieu_pile : element

parametre globaux
pile p

parametre locaux

entier i
pile temp
element x

debut

temp<-p
i<-0
tant que temp <> vide faire
x<-depiler ( temp )
i<-i+1
fin tanque
i->i div 2 (division entiere)
temp <- p
tant que i<>0 faire
x<-depiler ( temp )
i<-i-1
fin tant que
retourne x

fin algorithme fonction milieu_pile



algorithme fonction milieu_file : element

parametre globaux
pile p

parametre locaux

entier i
pile temp
element x
debut

temp<-p
i<-0
tant que temp <> vide faire
x<-defiler ( temp )
i<-i+1
fin tanque
i->i div 2 (division entiere)
temp <- p
tant que i<>0 faire
x<-defiler ( temp )
i<-i-1
fin tant que
retourne x

fin algorithme fonction milieu_file

desolé pour l'intentation ça passe pas
0
kaizeus Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1
 
merci pour le premier mais peux tu aussi faire le deuxieme et s'il te plait le traduit en langage c
stp ecrire les differents algo et les traduire en c ou c ++
0
berthelotn Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   11
 
a tu deja un tipe prédefinie pour les pile et les file en c

si oui ça peu grandement simplifier les chose


et que ve tu faire c'est swapper les 2 valeur (premier et dernerier ou c'est avoir le meme valeur en tete et en queu
0

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

Posez votre question
kaizeus Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1
 
ok je prend connaissance et je te repond tou a l' heure ok et grand merci
0
berthelotn Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   11
 
ok

dans l'attende de renseignement
par curiosité pourquoi tu demandes cela étude , taff, personnel??
0
kaizeus Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1
 
ok merci mais paeux tu le faire pour moi
0
berthelotn Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   11
 
ça depend si tu la type ou pas et pourqoui c'est fait
0
berthelotn Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   11
 
typedef struct s_file *t_file;

struct s_file
{
s_file next;
int element;
};


void change_value (t_list l);
{
t_file temp=l
int i ;
i= l.element;

while (temp.next)
{
temp=temp.next;

}
temp.element =i;

}


voila ce que je te propose l'indentation chie toujour autant desole (je ne l'est pas testé)
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Ca dépends comment tu veux implementer les files/piles

Si l'implémentation se fait avec les tableaux alors il suffit de connaître le nombre d'eléments
i=imax/2;
printf("%d", pile[i]);
Si l'implémentation c'est une liste chaînée le nombre d'élément aussi est important.
Il te resteras à parcourir la pile/file jusqu'au milieu pour extraire l'élément.

Voici un exemple d'implémentation par liste chaînée
http://www.commentcamarche.net/faq/sujet 8282 les files en langage c
http://www.commentcamarche.net/faq/sujet 8283 les piles en langage c

Avant toute manipulation peut être qu'il vaudra mieux comprendre l'implémentation des listes chaînées
http://www.commentcamarche.net/faq/sujet 7444 liste simplement chainee
0