PDA

View Full Version : Aiuto c++


Nightcrawler
04-12-2003, 21:03
per favore ho bisogno urgente di una funzione che separa due liste dinamiche disordinate di elementi con la seguente struct:

struct coda { //Definizione struttura coda
char nome[20]; //Nome prenotazione
int macchine; //Macchine prenotazione
int persone; //Persone prenotazione
coda *punt; //Puntatore lista
};

ecco la mia ma non so perchè non funziona

# define MAX_MACCHINE 20 //Numero massimo di macchine
# define MAX_PERSONE 100 //Numero massimo di persone

void separa(coda*&pt1,coda*&fine1,coda*&pt2,coda*&fine2,int *mac_occ,int *pers_occ)
{
coda *aux,*aux2;
aux=pt1;
pt1=fine1=NULL;
while(aux!=NULL)
{
aux2=(*aux).punt;
if(*mac_occ+(*aux).macchine<=MAX_MACCHINE && *pers_occ+(*aux).persone<=MAX_PERSONE)
{
inserisci(pt2,fine2,aux);
*mac_occ+=(*aux).macchine;
*pers_occ+=(*aux).persone;
}
else
inserisci(pt1,fine1,aux);
aux=aux2;
}
}

void inserisci(coda *&pt,coda *&pc,coda *nuovo)
{
if(pt==NULL)
pt=pc=nuovo;
else
{
(*pc).punt=nuovo;
pc=nuovo;
}
(*pc).punt=NULL;
}

pt1 e pt2 sono i puntatori di testa delle liste, fine1 e fine2 sono quelli di coda. mac_occ e pers_occ sono due variabili intere non contenenti numeri negativi.

PER FAVORE AIUTATEMI NE HO BISOGNO URGENTE

cionci
05-12-2003, 11:18
Qual è la condizione che decide se mettere un elemento nella lista1 o nella lista2 ?

Nightcrawler
05-12-2003, 19:39
if(*mac_occ+(*aux).macchine<=MAX_MACCHINE && *pers_occ+(*aux).persone<=MAX_PERSONE)

per accodare un elemento alla seconda lista bisogna che sia il suo campo macchine che il suo campo persone aggiunti alle macchine e persone già presenti non sia maggiore del numero massimo di macchine e persone disponibili.

Per favore aiutami non so che fare:muro: :muro:

alderighi
06-12-2003, 15:20
non è che non sa che fare è che la funzione del programma (esercitazione di laboratorio) gliela ho passata io, a me funziona anche perchè l'ho studiata io, a lui no comunque sembra che gli abbia risolto il problema, si era dimenticato di riazzerare le variabili del conteggio della macchina e delle persone.