PDA

Visualizza la versione completa : [C] lista interi.


rikyxxx
05-09-2003, 11:14
Qualcuno sa dirmi perchŔ questo segmento di codice, che crea una lista di interi e imlementa una funzione di inserimento in coda, non mi da i risultati sperati???


#include <stdio.h>
#include <stdlib.h>

typedef struct rec *pnumero;

typedef struct rec
{
int num;
pnumero next;
}numero;

pnumero lista1=NULL,lista2=NULL;

void ins_in_coda (pnumero lis, int elem)
{
pnumero cur, new;
cur=lis;
new=(pnumero) malloc(sizeof(struct rec));
new->num=elem;
new->next=NULL;
while (cur->next!=NULL) cur=cur->next;
cur->next=new;
}

main()
{
ins_in_coda (lista1,1);
printf("%d",lista1->num);
scanf("d%");

}



Grazie.

rikyxxx
05-09-2003, 20:26
up :(

gokan
05-09-2003, 20:40
Ti posso implementare la procedura Inserisci in Coda in Pascal.

Type
puntatore=^elemento
elemento=record
info: integer;
next: puntatore
end;



Procedure InserisciInCoda (var lis: puntatore; valore: integer);
var
ultimo:puntatore;
paux:puntatore;

begin
new(paux);
paux^.info:=valore;
paux^.next:=NIL; //Si mette a Nil perchŔ sarÓ l'ultimo elem della lista

if lis=NIL then lis:=paux //se la lista Ŕ vuota, paux sarÓ la nuova testa della lista
else
begin
ultimo:=lis;
while ultimo^.next<>NIL do ultimo:=ultimo^.next; //scandiamo la lista fino a quando arriviamo alla fine..
ultimo^.next:=paux; //a quel punto colleghiamo paux all'ultimo elemento ed il gioco Ŕ fatto!!
end;

rikyxxx
06-09-2003, 12:03
Grazie, Ŕ giÓ qualcosa.

Ora vedo cosaa risco a fare.


rikyxxx

m@ximo
06-09-2003, 12:33
Questa Ŕ il metodo enqueue di una coda in C++, spero ti serva:



struct persona {
stringa nome;
stringa cognome;
};

struct abbonato;

typedef abbonato* pointer;

struct abbonato {
persona utente;
pointer next;
};

void Coda::enqueue(const persona& p) {
pointer q = new abbonato;
strcpy(q->utente.nome,p.nome);
strcpy(q->utente.cognome,p.cognome);
if (c == 0) {
q->next = 0;
c = q;
t = c;
}
else {
q->next = c;
c = q;
}
}

P.S. c Ŕ il puntatore alla coda



Bye

Max

AxLn
06-09-2003, 12:41
Lista di interi in C:


---------------------------------
#include <stdio.h>
#include <stdlib.h>


struct rec {
int num;
struct rec *next;
};

typedef struct rec LIST;
typedef LIST *P_LIST;


P_LIST add_e(P_LIST head, int elem);


int main()
{
P_LIST head = NULL;
P_LIST cur = NULL;

head = add_e(head, 1);
head = add_e(head, 2);
cur = head;

do
{
printf("%d\n", cur->num);
cur = cur->next;

} while(cur != NULL);

return 0;

}


P_LIST add_e (P_LIST head, int elem)
{
P_LIST cur = NULL;
P_LIST new = NULL;

new=(P_LIST)malloc(sizeof(LIST));
new->num = elem;

if(head == NULL)
{
head = new;
new->next = NULL;
}

else
{
cur=head;
while(cur->next != NULL)
{
cur=cur->next;
}
cur->next = new;
new->next = NULL;
}
return(head);

}
---------------------------------------

Spero che ti sia utile


Ciao

Loading