begin process at 2012 05 27 18:44:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > MODULE DE GESTION D'UNE FILE

MODULE DE GESTION D'UNE FILE


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :file, infinie Niveau :Initié Date de création :23/02/2007 Vu / téléchargé :3 810 / 257

Auteur : DocteurPV

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Ce module implemente les focntions de gestion d'une file.

Source

  • #include "file.h"
  • #include <assert.h>
  • #define TETE 0
  • #define QUEUE 1
  • /////////////////////////////////////////////////////////////////////
  • //Structure
  • /////////////////////////////////////////////////////////////////////
  • struct file_maillon{
  • FILE_TYPE valeur;
  • struct file_maillon *suivant;
  • };
  • /////////////////////////////////////////////////////////////////////
  • //Fonctions
  • /////////////////////////////////////////////////////////////////////
  • file file_creer(void){
  • //file f={0,0};
  • file f=(file)malloc(sizeof(struct maillon*)*2);
  • f[TETE]=f[QUEUE]=0;
  • return f;
  • }
  • void file_detruie(file f){
  • while(!file_isVide(f)){
  • file_defiler(f);
  • }
  • }
  • void file_enfiler(file f,FILE_TYPE val){
  • struct file_maillon *nouv;
  • nouv=(struct file_maillon*)malloc(sizeof(struct file_maillon));
  • nouv->suivant=0;
  • nouv->valeur=val;
  • if(file_isVide(f))
  • f[TETE]=nouv;
  • else
  • f[QUEUE]->suivant=nouv;
  • f[QUEUE]=nouv;
  • }
  • FILE_TYPE file_defiler(file f){
  • int val;
  • struct file_maillon *tmp;
  • assert (!file_isVide(f));
  • val=f[TETE]->valeur;
  • tmp=f[TETE]->suivant;
  • if(f[TETE]==f[QUEUE]){
  • f[QUEUE]=tmp=0;
  • }
  • free(f[TETE]);
  • f[TETE] = tmp;
  • return val;
  • }
  • unsigned char file_isVide(file f){
  • return((f[TETE]==0)||(f[QUEUE]==0));
  • }
  • FILE_TYPE file_sommet(file f){
  • assert (!file_isVide(f));
  • return f[TETE]->valeur;
  • }
  • void file_testMODULE(){
  • file f;
  • printf("la\n");
  • f=file_creer();
  • printf("la\n");
  • file_enfiler(f,1998);
  • printf("la\n");
  • file_enfiler(f,1999);
  • printf("la\n");
  • printf("%i\n",file_sommet(f));
  • printf("%i\n",file_sommet(f));
  • printf("%i\n",file_sommet(f));
  • printf("%i\n",file_defiler(f));
  • printf("%i\n",file_sommet(f));
  • printf("%i\n",file_sommet(f));
  • printf("%i\n",file_sommet(f));
  • printf("%i\n",file_defiler(f));
  • file_detruie(f);
  • }
#include "file.h"
#include <assert.h>

#define TETE 0
#define QUEUE 1

/////////////////////////////////////////////////////////////////////
//Structure
/////////////////////////////////////////////////////////////////////
struct file_maillon{
	FILE_TYPE valeur;
	struct file_maillon *suivant;
};

/////////////////////////////////////////////////////////////////////
//Fonctions
/////////////////////////////////////////////////////////////////////
file file_creer(void){
	//file f={0,0};
	file f=(file)malloc(sizeof(struct maillon*)*2);	
	f[TETE]=f[QUEUE]=0;
	return f;
}

void file_detruie(file f){
	while(!file_isVide(f)){
		file_defiler(f);
	}
}

void file_enfiler(file f,FILE_TYPE val){
	struct file_maillon *nouv;	
	nouv=(struct file_maillon*)malloc(sizeof(struct file_maillon));
	nouv->suivant=0;
	nouv->valeur=val;
	if(file_isVide(f))
		f[TETE]=nouv;
	else
		f[QUEUE]->suivant=nouv;	
	f[QUEUE]=nouv;	
}

FILE_TYPE file_defiler(file f){
	int val;
	struct file_maillon *tmp;
	assert (!file_isVide(f));
	val=f[TETE]->valeur;
	tmp=f[TETE]->suivant;
	if(f[TETE]==f[QUEUE]){
		f[QUEUE]=tmp=0;
	}
	free(f[TETE]);
	f[TETE] = tmp;
	return val;
	
}

unsigned char file_isVide(file f){
	return((f[TETE]==0)||(f[QUEUE]==0));
}

FILE_TYPE file_sommet(file f){
	assert (!file_isVide(f));
	return f[TETE]->valeur;
}

void file_testMODULE(){
	file f;
	printf("la\n");
	f=file_creer();
	printf("la\n");
	file_enfiler(f,1998);
	printf("la\n");
	file_enfiler(f,1999);
	printf("la\n");
	printf("%i\n",file_sommet(f));
	printf("%i\n",file_sommet(f));
	printf("%i\n",file_sommet(f));
	printf("%i\n",file_defiler(f));
	printf("%i\n",file_sommet(f));
	printf("%i\n",file_sommet(f));
	printf("%i\n",file_sommet(f));
	printf("%i\n",file_defiler(f));
	file_detruie(f);
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture MODULE D'INTÉGRATION DE CHAINES DANS UNE MATRICE : SCRABLE

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip FILE D'ATTENTE EN C++ par bibo90
[C ANSI] TAS (PRIORITY QUEUE) par coucou747
Source avec Zip PROTEGER LE EXE PAR CRC par f_l_a_s_h_b_a_c_k
Source avec Zip BIBLIOTHÈQUE DE GESTION DE FILES DYNAMIQUES par Sunglasses

Commentaires et avis

Commentaire de yann_lo_san le 23/02/2007 15:22:07

Salut,
Pourquoi ne pas implémenter directement le :
typedef int FILE_TYPE en
typedef void* PFILE_TYPE ?
Ce qui serait beaucoup plus générique et pas beaucoup plus compliqué à écrire.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème avec traitement de fichier (cplusplus !) [ par Sianrin ] Voila, j'explique mon problème. Pour voir un peu comment les accès au fichiers se géraient en cplusplus, je me suis mis en tête de faire un programme prob de compilation [ par jacky66 ] salutje debute dans la prog c++pour mon 1 er prog quand je compile il me sort un message fatal error C1083: Cannot open include file: 'idoctidm.h': No Pb avec une fonction windows... [ par Steak ] j'ai un petit probleme avec la fonction NT UpdateResource... voila ce que dit le sdk win32 : BOOL UpdateResource( HANDLE hUpdate, // update-file handl Enregistrer en HEXA un texte avec gcc !! [ par UncleShu ] /* * Ce programme affiche le fichier en HEXADECIMAL et se copie lui-même avec * une autre exetenstion (.txt). Moi je voudrais qui affiche le fichier * Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include &lt;stdio.h&gt; #include &lt;stdlib.h boucle infinie,enfin presque... [ par booth ] bonjour, je suis semi newbie en C++, et je viens de faire un prog avec des sockets...le truc c'est que je suis obligé d'utiliser une boucle ainfinie p conversion [ par coyotedef ] salut!!lors de la compilation de mon code une erreur apparait. impossible de trouver un remede. "cannot convert parameter 1 from 'char [10]' to 'char' devc++ et glut [ par aluco ] j'ai bo ajouter les fichiers: Options -&gt; Compiler Options -&gt; Add the following commands when calling compiler -&gt; -lglut32 -lopengl32 -lglu32 Traitement de tableau de caracteres. [ par coyotedef ] Je lit des données a partir d un fichier texte et je classe les caracteres dans un tableau de caracteres. jusque la rien de bien special.mais voila, j pb avec un labyrinthe [ par skinia ] je suis sur un projet de labyrinthe et j'ai bloqué pour l' algorithme du plus court chemin (entre un pt qq du labyrinthe et la cible au milieu).le lab


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,936 sec (4)

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