Arbres binaires+bibliothèque

Signaler
Messages postés
2
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
26 février 2009
-
Messages postés
2
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
26 février 2009
-
Bonjour à tous!
Voila j'ai un petit exercice (enfin pas si petit) qui me tracasse, ça fait que 6 mois que je fais du C donc je suis un peut perdu!

Voilà l'exercice:
On souhaite gérer les livres d'une bibliothèque à l'aide d'une table (Biblio) de listes chaînées.
A chaque nom d'auteur correspondra un code compris entre 0 et M-l. Chaque code donne accès à
une liste chaînée triée de tous les noms d'auteurs ayant le même code.
Pour chaque auteur, on connaît son nom: nomAuteur; on dispose également de deux pointeurs
premier et dernier sur la liste des livres écrits par l'auteur, triée par ordre chronologique:
premier est le pointeur sur le premier livre écrit par l'auteur alors que le dernier pointe sur le
dernier livre écrit par l'auteur.
On supposera que tous les auteurs ont un nom différent et que les titres de tous les livres sont
différents.
On dispose d'une fonction calculCode qui calcule le code d'un auteur. L'entête de cette fonction
est: int calculCode(char *nom) ;
Spécification: retourne le code, compris entre 0 et M-l, associé au nom.

1. Définir les types et structures de données nécessaires.
2. Donner une représentation schématique de la structure de données (utiliser un exemple).
3. Ecrire une fonction nbAut(Auteur *p) qui retourne le nombre d'auteurs présent dans la liste
des auteurs.
4. Ecrire une fonction nbAutTot(Bibio t) qui retourne le nombre d'auteurs présent dans la
bibliothèque.
5. Ecrire une fonction qui retourne le nombre de livre écrit par un auteur donné.
6. Ecrire une fonction ou procédure qui insère un auteur dans la bibliothèque.
7. Ecrire une fonction ou procédure qui supprime un auteur de la bibliothèque.

Donc pour la 1er question j'ai tiré ceci:
struct Auteur
{
 char nomAuteur;
 int code;
};

struct Biblio
{
   char Auteur;
   Biblio* fils_droite;
   Biblio* fils_gauche;
};
Biblio* arbre = NULL;

Pour le nombre d'auteur:
void nbAut(Auteur A)
{
 cellule *q
 q= new cellule
 A=q
 if(A!=NULL)
 {
  q= A-> suivant
  return q
 }
 else { return 1 }
}

Donc je voudrais savoir si quelqu'un voulais bien m'aider pour le reste...
Merci d'avance

1 réponse

Messages postés
2
Date d'inscription
mardi 3 février 2009
Statut
Membre
Dernière intervention
26 février 2009

??