Arbre arithmétique à partir d'une expression
ruthdy
Messages postés
1
Statut
Membre
-
gdavis -
gdavis -
salutation a tous et je profite cette dite occasion pour vous faire part d'une petite question qui est la suivante:
Ecrire un progamme qui en C qui crée un arbre arithmétique à partir d'une expression postfixée fournie au clavier . ce programme devra permettre de donner une notation préfixée pour l'expression et de réaliser son évaluation.(en utilisant une structure arbre)
Le programme sera utilisé à travers un menu comportant les entrées suivantes:
1- Donner une expression posfixée
2- Affichage de la notation préfixée de l'expression
3- Evaluation de l'expression
4- Quitter le programme
REMARQUE: l'expression posfixée sera constituée de chiffres (0.9)et des opérateurs (+,-,*)
INDICATION: utilisé une "pile d'arbre" pour créer l'arbre arithmétique .
comptant sur vos suggestions , vous aller m'aider
does je vous remercie tous.
Ecrire un progamme qui en C qui crée un arbre arithmétique à partir d'une expression postfixée fournie au clavier . ce programme devra permettre de donner une notation préfixée pour l'expression et de réaliser son évaluation.(en utilisant une structure arbre)
Le programme sera utilisé à travers un menu comportant les entrées suivantes:
1- Donner une expression posfixée
2- Affichage de la notation préfixée de l'expression
3- Evaluation de l'expression
4- Quitter le programme
REMARQUE: l'expression posfixée sera constituée de chiffres (0.9)et des opérateurs (+,-,*)
INDICATION: utilisé une "pile d'arbre" pour créer l'arbre arithmétique .
comptant sur vos suggestions , vous aller m'aider
does je vous remercie tous.
A voir également:
- Arbre arithmétique à partir d'une expression
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Créer une icone à partir d'une image - Guide
- Moyenne arithmétique excel - Guide
- Créer une vidéo à partir de photos - Guide
2 réponses
Bsoir
exploite ceci que Lami20j m'a balancé
#include<stdio.h>
#include<stdlib.h>
typedef struct N_
{
int nb;
struct N_*gauche;
struct N_*droite;
} Noeud;
void CreerArbre (Noeud ** racine, int n);
void Traiter (Noeud * racine);
void AfficherPrefixe (Noeud * racine);
void AfficherPostfixe (Noeud * racine);
void AfficherInfixe (Noeud * racine);
Noeud *alloc ();
int main ()
{
Noeud *racine;
racine = NULL;
int n;
printf ("Numéro [100 pour terminer] ? ");
scanf ("%d", &n);
while (n != 100) {
CreerArbre (&racine, n);
printf ("Numéro [100 pour terminer] ? ");
scanf ("%d", &n);
}
AfficherPrefixe (racine);
puts ("");
AfficherInfixe (racine);
puts ("");
AfficherPostfixe (racine);
puts ("");
return 0;
}
void CreerArbre (Noeud ** racine, char c)
{
Noeud *nouveau;
nouveau = alloc ();
if (*racine == NULL) {
nouveau->nb = n;
nouveau->gauche = NULL;
nouveau->droite = NULL;
*racine = nouveau;
}
else if (n < (*racine)->nb)
CreerArbre (&(*racine)->gauche, c);
else if (n > (*racine)->nb)
CreerArbre (&(*racine)->droite, c);
}
Noeud *alloc ()
{
Noeud *noeud;
noeud = (Noeud *) malloc (sizeof (Noeud));
return noeud;
}
void Traiter (Noeud * racine)
{
printf ("%d (%p) ; ", racine->nb, racine);
}
void AfficherPrefixe (Noeud * racine)
{
if (racine != NULL) {
Traiter (racine);
AfficherPrefixe (racine->gauche);
AfficherPrefixe (racine->droite);
}
}
void AfficherPostfixe (Noeud * racine)
{
if (racine != NULL) {
AfficherPostfixe (racine->gauche);
AfficherPostfixe (racine->droite);
Traiter (racine);
}
}
void AfficherInfixe (Noeud * racine)
{
if (racine != NULL) {
AfficherInfixe (racine->gauche);
Traiter (racine);
AfficherInfixe (racine->droite);
}
}
Bsoir
exploite ceci que Lami20j m'a balancé
#include<stdio.h>
#include<stdlib.h>
typedef struct N_
{
int nb;
struct N_*gauche;
struct N_*droite;
} Noeud;
void CreerArbre (Noeud ** racine, int n);
void Traiter (Noeud * racine);
void AfficherPrefixe (Noeud * racine);
void AfficherPostfixe (Noeud * racine);
void AfficherInfixe (Noeud * racine);
Noeud *alloc ();
int main ()
{
Noeud *racine;
racine = NULL;
int n;
printf ("Numéro [100 pour terminer] ? ");
scanf ("%d", &n);
while (n != 100) {
CreerArbre (&racine, n);
printf ("Numéro [100 pour terminer] ? ");
scanf ("%d", &n);
}
AfficherPrefixe (racine);
puts ("");
AfficherInfixe (racine);
puts ("");
AfficherPostfixe (racine);
puts ("");
return 0;
}
void CreerArbre (Noeud ** racine, char c)
{
Noeud *nouveau;
nouveau = alloc ();
if (*racine == NULL) {
nouveau->nb = n;
nouveau->gauche = NULL;
nouveau->droite = NULL;
*racine = nouveau;
}
else if (n < (*racine)->nb)
CreerArbre (&(*racine)->gauche, c);
else if (n > (*racine)->nb)
CreerArbre (&(*racine)->droite, c);
}
Noeud *alloc ()
{
Noeud *noeud;
noeud = (Noeud *) malloc (sizeof (Noeud));
return noeud;
}
void Traiter (Noeud * racine)
{
printf ("%d (%p) ; ", racine->nb, racine);
}
void AfficherPrefixe (Noeud * racine)
{
if (racine != NULL) {
Traiter (racine);
AfficherPrefixe (racine->gauche);
AfficherPrefixe (racine->droite);
}
}
void AfficherPostfixe (Noeud * racine)
{
if (racine != NULL) {
AfficherPostfixe (racine->gauche);
AfficherPostfixe (racine->droite);
Traiter (racine);
}
}
void AfficherInfixe (Noeud * racine)
{
if (racine != NULL) {
AfficherInfixe (racine->gauche);
Traiter (racine);
AfficherInfixe (racine->droite);
}
}
Bsoir