begin process at 2010 03 18 06:31:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > PILES BASÉ SUR DES TABLEAUX

PILES BASÉ SUR DES TABLEAUX


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :piles, gestion, dynamique, creation, suppression Niveau :Expert Date de création :12/06/2003 Date de mise à jour :12/06/2003 22:54:06 Vu :2 749

Auteur : dreamoudi

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

 Description

Code trés fort pour bien gerer les piles, creation dynamique, effecement, avec bonne gestion de la memoire.

Source

  • // Program name : Stack Manager
  • // Description : Manage Stacks based on tables.
  • // Creator : By Mohamed K. Nasrallah
  • // Company : Dreamwood Studios - SmartScript Inc.
  • // Credits : All rights are reserved, (c) 2003 SmartScript Inc.
  • // Comment : Free of charge source code -dreamoudi@linuxmail.org
  • #include <iostream.h>
  • #define max 99
  • #define min 0
  • struct pile
  • {
  • int data[max+1];
  • int top;
  • };
  • pile*CreatPile(pile*loader)
  • {
  • loader = new pile;
  • loader->top = -1;
  • return loader;
  • }
  • int IsEmpty(pile*loader)
  • {
  • if(loader->top < min)
  • return 1;
  • else return 0;
  • }
  • void PrintPile(pile*loader)
  • {
  • if(loader && (IsEmpty(loader) == 0))
  • {
  • int i;
  • for(i = loader->top; i>=0 ; i--)
  • cout <<endl<<"["<<loader->data[i]<<"]"<<endl;
  • }
  • else
  • cout <<endl<<"Can't print, stack is empty"<<endl;
  • }
  • int PushData(pile*loader,int data)
  • {
  • if(loader && (loader->top < max))
  • {
  • loader->top++;
  • loader->data[loader->top] = data;
  • return 1;
  • }
  • else
  • {
  • return 0;
  • }
  • }
  • int PopData(pile*loader)
  • {
  • if(IsEmpty(loader))
  • {
  • return 0;
  • }
  • else
  • {
  • loader->top--;
  • return 1;
  • }
  • }
  • int PileFree(pile*loader)
  • {
  • if(IsEmpty(loader) == 0)
  • {
  • loader->top = -1;
  • return 1;
  • }
  • else return 0;
  • }
  • int SpyOnTop(pile*loader)
  • {
  • if(loader && (loader->top >= min))
  • {
  • int spyed = loader->data[loader->top];
  • return spyed;
  • }
  • else return NULL;
  • }
  • void main()
  • {
  • pile*loader = NULL;
  • double data;
  • int choice = 0;
  • int status;
  • while(choice!=6)
  • {
  • cout <<endl
  • <<"Choose an option "<<endl
  • <<" "<<endl
  • <<" 1- Push to stack "<<endl
  • <<" 2- Pop from stack "<<endl
  • <<" 3- Spy on top "<<endl
  • <<" 4- Clear stack "<<endl
  • <<" 5- Print Stack "<<endl
  • <<" 6- Exit "<<endl<<endl;
  • cout << "CHOICE\\>: ";
  • cin >> choice;
  • switch(choice)
  • {
  • case 1:
  • {
  • if(loader == NULL)
  • loader = CreatPile(loader);
  • cout <<endl<<endl<<"Enter a value: ";
  • cin >>data;
  • status = PushData(loader,data);
  • if (status == 1)
  • cout<<endl<<"Data was pushed succefully"<<endl;
  • else
  • cout<<endl<<"Stack is full"<<endl;
  • break;
  • }
  • case 2:
  • {
  • if(loader)
  • {
  • status = PopData(loader);
  • if(status == 1)
  • cout <<endl<<"Stack was been poped 1 time"<<endl;
  • else
  • cout <<endl<<"No data in stack"<<endl;
  • break;
  • }
  • else
  • cout <<endl<<"No stack"<<endl;
  • break;
  • }
  • case 3:
  • {
  • status = SpyOnTop(loader);
  • if(status != NULL)
  • cout <<endl<<"Top value is ["<<status<<"]"<<endl;
  • else
  • cout <<endl<<"Stack is empty, or no stack"<<endl;
  • break;
  • }
  • case 4:
  • {
  • if(loader)
  • {
  • status = PileFree(loader);
  • if(status == 1)
  • cout <<endl<<"Stack cleared"<<endl;
  • else
  • cout <<endl<<"Already cleared"<<endl;
  • }
  • else
  • cout <<endl<<"No stack to clear"<<endl;
  • break;
  • }
  • case 5:
  • {
  • PrintPile(loader);
  • break;
  • }
  • case 6:
  • {
  • break;
  • }
  • default:
  • {
  • cout <<endl<<"\aThis is an illegal choice, note that you must"<<endl
  • <<"read well the menu.\a"<<endl;
  • break;
  • }
  • }
  • }
  • delete loader;
  • }
// Program name         : Stack Manager
// Description	 : Manage Stacks based on tables.
// Creator		 : By Mohamed K. Nasrallah
// Company	 : Dreamwood Studios - SmartScript Inc.
// Credits		 : All rights are reserved, (c) 2003 SmartScript Inc.
// Comment	 : Free of charge source code -dreamoudi@linuxmail.org

#include <iostream.h>
#define max 99
#define min 0

struct pile
	{
   	int data[max+1];
      int top;
   };

pile*CreatPile(pile*loader)
	{
   	loader = new pile;
      loader->top = -1;
      return loader;
   }

int IsEmpty(pile*loader)
	{
   	if(loader->top < min)
      	return 1;
      else return 0;
   }

void PrintPile(pile*loader)
	{
   	if(loader && (IsEmpty(loader) == 0))
      	{
				int i;
            for(i = loader->top; i>=0 ; i--)
            cout  <<endl<<"["<<loader->data[i]<<"]"<<endl;
         }
      else
      	cout	<<endl<<"Can't print, stack is empty"<<endl;
   }

int PushData(pile*loader,int data)
	{
      if(loader && (loader->top < max))
      	{
					loader->top++;
               loader->data[loader->top] = data;
					return 1;
      	}
      else
      	{
      		return 0;
      	}
   }

int PopData(pile*loader)
	{
    			if(IsEmpty(loader))
      			{
               	return 0;
      		   }
            else
         		{
                  loader->top--;
                  return 1;
               }
   }

int PileFree(pile*loader)
	{
    			if(IsEmpty(loader) == 0)
      			{
						loader->top = -1;
               	return 1;
      		   }
            else return 0;
   }

int SpyOnTop(pile*loader)
	{
    			if(loader && (loader->top >= min))
         		{
                  int spyed = loader->data[loader->top];
                  return spyed;
               }
            else return NULL;
   }

void main()
	{
   	pile*loader = NULL;
      double data;
      int choice = 0;
      int status;

      	while(choice!=6)
				{
      			cout  <<endl
               		<<"Choose an option			"<<endl
      					<<"					 			"<<endl
            			<<"	1- Push to stack		"<<endl
         			   <<"	2- Pop from stack		"<<endl
     			      	<<"	3- Spy on top			"<<endl
            			<<"	4- Clear stack			"<<endl
                     <<"	5- Print Stack			"<<endl
                     <<"	6- Exit					"<<endl<<endl;
               cout	<< "CHOICE\\>: ";
               cin	>> choice;

            	switch(choice)
               	{
                  	case 1:
                     	{
                        	if(loader == NULL)
                           	loader = CreatPile(loader);
                           cout	<<endl<<endl<<"Enter a value: ";
                           cin	>>data;
                           status = PushData(loader,data);
                           	if (status == 1)
                              	cout<<endl<<"Data was pushed succefully"<<endl;
                              else
                              	cout<<endl<<"Stack is full"<<endl;
                           break;
                        }
                     case 2:
                     	{
                           if(loader)
                           	{
			                       	status = PopData(loader);
         	                  	if(status == 1)
            	                  	cout	<<endl<<"Stack was been poped 1 time"<<endl;
               	               else
                  	            	cout	<<endl<<"No data in stack"<<endl;
                     	         break;
                              }
                           else
                           	cout	<<endl<<"No stack"<<endl;
                           break;
                        }
                     case 3:
                     	{
                        	status = SpyOnTop(loader);
                           if(status != NULL)
                        		cout	<<endl<<"Top value is ["<<status<<"]"<<endl;
                           else
                           	cout	<<endl<<"Stack is empty, or no stack"<<endl;
                           break;
                        }
                     case 4:
                     	{
                           if(loader)
                           	{
	                        		status = PileFree(loader);
											if(status == 1)
												cout	<<endl<<"Stack cleared"<<endl;
											else
												cout	<<endl<<"Already cleared"<<endl;
										}
                           else
                           	cout	<<endl<<"No stack to clear"<<endl;

                           break;
                        }
                     case 5:
                     	{
                         	PrintPile(loader);
                           break;
                        }
                     case 6:
                     	{
									break;
                        }
                     default:
                     	{
                        	cout	<<endl<<"\aThis is an illegal choice, note that you must"<<endl
                           		<<"read well the menu.\a"<<endl;
                           break;
                        }
                  }
				}

	delete loader;
	}

 Conclusion

Pour qui aime avoir ce code ecrit en list chainee, envoyer une message.
Merci.


 Sources de la même categorie

CONSTRUCTION D'UNE AUTOMATE FINIS DETERMINISTE par skible
COMPILATEUR BF VERS BF-BYTECODE par Davy974
GESTIONNAIRE DE BIBLIOTHEQUE par eishtein
FICHIER ALBUM MUSICAL par imenouuuuuuuuuche
LOUISDU81 HTTP EDITOR par louisdu81

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ALGORITHME DE CRYPTAGE/DECRYPTAGE par besilent
GESTIONNAIRE DE BIBLIOTHEQUE par eishtein
Source avec Zip Source avec une capture ALGORITHME POUR ÉVALUER LES EXPRESSIONS ARITHMETIQUES par shnaykhs
Source avec Zip Source avec une capture [DEV-C++] GESTION DU PORT PARALLÈLE par victorcoasne
Source avec Zip GESTIONNAIRE DE SERVER ET CLIENT DDE (DYNAMIC DATA EXCHANGE) par BaFM

Commentaires et avis

Commentaire de gillig le 13/06/2003 12:57:56

Pas mal, mais c'est typiquement le genre de code dont on peut faire une classe. Et pendant qu'on y est, avec template, histoire de pouvoir stocker autre chose que des int...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Creation logiciel Video/Gestion [ par lezabour55 ] Bonjour a tous,Je pense a developper un logiciel qui aura 3 missions, il me semble assez simple, mais a vous de me confirmer 1) Recuperation d'un fi creation dynamique [ par sheorogath ] bonjour a tous ,g reussi a developper un programme permetant la gestion des stock en mode console avec entre autre l'aide de ce forum . mais je voudra Gestion dynamique des controles (button, listbox, static text ....etc) [ par SaNcOdeR ] Bonjour, je recherche une classe de gestion dynamique des controles tel que les bouttons, les check box, les tree ...etc... afin de pouvoir g&#233;r&# [.net c++] gestion du port serie [ par stgi02 ] bonjour, j'ai une question sur la gestion du port s&#233;rie pouvez-vous m'expliquer ce que signifie SetCommTimeouts ,GetCommTimeouts , COMMTIMEOUTS s Creation d'une palette couleur [ par julienbornet ] Bonjour ben comme je dis dans le titre je souhaite creer un genre de palette couleur (genre celle de paint) mais un peu differente. En fait je veux av creation d'un chat; [ par loverjeckill ] Je voudrai cr&#233;er un chat pour une communaut&#233;; ce chat devrai disposer d'une liste de pseudo, ainsi que des petites fonctionnalit&#233; du ge gestion du volume avec FMOD [ par cowboybebop95 ] "Bonjour &#224; tous,Voila dans le cadre d'un projet de fin d'ann&#233;e je suis ammen&#233; a utiliser la librairie Fmod pour la gestion des audiosPo gestion des periphériques [ par mimiaka ] bsr bon voila je doi realisé un programme sous c ou c++ qui porte sur la gestion des periphériques et j'en ai aucune idée si quelqu'un pourai m'aidé j creation en projet [ par bonjour__ ] salut toutle monde;je suis debutant sur programmationmon question comment cree un projet sur visual c++ merci a tous Gestion d'une école [ par Romerocharvet ] du code source en Langage c " Gestion d'une école"-Les fichiers-Les Listes-Les poiteurs... merci


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,686 sec (3)

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