Accueil > > > PILES BASÉ SUR DES TABLEAUX
PILES BASÉ SUR DES TABLEAUX
Information sur la source
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;
}
Conclusion
Pour qui aime avoir ce code ecrit en list chainee, envoyer une message. Merci.
Sources de la même categorie
Commentaires et avis
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
Creation d'objet dynamique (FORM) [ par katerson ]
Salut à tous, Je travaille en ce moment sur Visual Studio et j'utilise les Forms pour mon application. Je viens de créer une arborescence (TreeView
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ér&#
[.net c++] gestion du port serie [ par stgi02 ]
bonjour, j'ai une question sur la gestion du port sé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éer un chat pour une communauté; ce chat devrai disposer d'une liste de pseudo, ainsi que des petites fonctionnalité du ge
gestion du volume avec FMOD [ par cowboybebop95 ]
"Bonjour à tous,Voila dans le cadre d'un projet de fin d'année je suis ammené 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
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|