Algo avancé sur les piles et les files

Fermé
kaizeus Messages postés 12 Date d'inscription samedi 18 juillet 2009 Statut Membre Dernière intervention 12 août 2009 - 21 juil. 2009 à 12:02
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 21 juil. 2009 à 13:19
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 lundi 29 juin 2009 Statut Membre Dernière intervention 31 juillet 2009 11
21 juil. 2009 à 12:03
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 lundi 29 juin 2009 Statut Membre Dernière intervention 31 juillet 2009 11
21 juil. 2009 à 12:24
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 samedi 18 juillet 2009 Statut Membre Dernière intervention 12 août 2009 1
21 juil. 2009 à 12:35
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 lundi 29 juin 2009 Statut Membre Dernière intervention 31 juillet 2009 11
21 juil. 2009 à 12:38
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 samedi 18 juillet 2009 Statut Membre Dernière intervention 12 août 2009 1
21 juil. 2009 à 12:40
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 lundi 29 juin 2009 Statut Membre Dernière intervention 31 juillet 2009 11
21 juil. 2009 à 12:41
ok

dans l'attende de renseignement
par curiosité pourquoi tu demandes cela étude , taff, personnel??
0
kaizeus Messages postés 12 Date d'inscription samedi 18 juillet 2009 Statut Membre Dernière intervention 12 août 2009 1
21 juil. 2009 à 12:43
ok merci mais paeux tu le faire pour moi
0
berthelotn Messages postés 122 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 31 juillet 2009 11
21 juil. 2009 à 12:52
ça depend si tu la type ou pas et pourqoui c'est fait
0
berthelotn Messages postés 122 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 31 juillet 2009 11
21 juil. 2009 à 13:09
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 juil. 2009 à 13:19
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