PDA

View Full Version : [C++] Inserire caratteri dentro una coda.


Xizor
06-04-2008, 12:11
//Gestione di una coda
#include<iostream.h>
#define MAX 10
int coda[MAX]; //array per la coda
int fine; //fine della coda
//prototipi delle funzioni
void svuotacoda(void);
void pop(void);
void push(void);
void scrivicoda(void);
void presentamenu(void);
//funzione principale
int main (void) {
int scelta; //scelta del menu
svuotacoda();
do {
do {
presentamenu();
cout<<"Inserisci la tua scelta\n";
cin>>scelta;
}
while (scelta<1 || scelta>5);
switch(scelta) {
case 1:
svuotacoda();
break;
case 2:
pop();
break;
case 3:
push();
break;
case 4:
scrivicoda();
break;
}
} while (scelta !=5);
system ("pause");
return 0;
}

//Inizializzazione della coda
void svuotacoda(void) {
fine=-1;
cout<<"Coda vuota\n";
return;
}

//Estrazione di un elemento della coda
void pop(void) {
int i;
if (fine==-1) cout<<"Coda vuota.Nessun elemento puo essere estratto\n";
else {
cout<<"Elemento estratto "<<coda[0]<<"\n";
for(i=1;i<=fine;i++){
coda[i-1]=coda[i];
}
fine--; //sposta a sinistra la fine della coda
}
return;
}

//Inserimento di un elemento nella coda
void push(void) {
int dato; //Elemento da inserire
if (fine==MAX-1) cout<<"Coda piena.Nessun elemento puo essere inserito\n";
else {
cout<<"Dimmi il dato da inserire\n";
cin>>dato;
fine++; //sposta a destra la fine della coda
coda[fine]=dato;
}
return;
}

//Visualizzazione della coda
void scrivicoda(void) {
int i;
cout<<"Inizio Coda-->";
for (i=0;i<=fine;i++)
cout<<coda[i];
cout<<"<--Fine Coda\n";
return;
}

void presentamenu(void) {
cout<<"\n";
cout<<"1.Svuota Coda\n";
cout<<"2.Estrai un dato\n";
cout<<"3.Aggiungi un dato\n";
cout<<"4.Scrivi Coda\n";
cout<<"5.Fine\n";
cout<<"\n";
return;
}



Questo programma inserisce semplicemente dentro la coda dei numeri interi, ma io stavo cercando di inserire stringhe di caratteri.

Nella function Push ho provato a sostituire int dato con char dato, ma poi mi da chiaramente un conflitto fra int e char.

Come si puņ fare??

Grazie.
:D

xblitz
06-04-2008, 12:51
ciao! allora:
coda č definito come intero (4 riga del programma), ora tu vuoi (correggimi se sbaglio) che ogni elemento contenga una stringa di caratteri, allora devi trasformare il vettore coda in un vettore di puntatori a caratteri e allocare le aree puntate in memoria dinamica con new... se invece vuoi inserire un carattere ad ogni nodo basta che trasformi quell'int in char e modifichi il programma in maniera opportuna.