24/12/2018, 12:46
#include <stdio.h>
#include <stdlib.h>
#define FALSE 0
#define TRUE 1
struct elemento{
int info;
struct elemento * next;
};
typedef struct elemento ElementoLista;
typedef ElementoLista* ListaDiElementi;
ListaDiElementi crealista(){
ListaDiElementi lista,aux;
int n;
scanf("%d",&n);
if(n<0) {
lista=NULL;
return(lista);
}
else{
//creo il primo elemento
lista=malloc(sizeof(ElementoLista));
lista->info=n;
aux=lista;
while(n>=0){
scanf("%d",&n);
if(n>=0){
aux->next=malloc(sizeof(ElementoLista));
aux=aux->next;
aux->info=n;
}
}
aux->next=NULL;
return(lista);
}
}
void stampalista(ListaDiElementi lista){
while(lista!=NULL){
printf("%d",lista->info);
lista=lista->next;
printf("\n");
}
}
ListaDiElementi intersezione(ListaDiElementi *lista1, ListaDiElementi *lista2){
ListaDiElementi lista3,p,i,aux;
int trovato=FALSE;
int primavolta=TRUE;
p=*lista1;
i=*lista2;
while(p->next!=NULL){
while(i->next!=NULL && !trovato){
if((p->info)==(i->info)){
trovato=TRUE;
if(primavolta){
lista3=malloc(sizeof(ElementoLista));
lista3->info=p->info;
aux=lista3;
primavolta=FALSE;
}
else{
aux->next=malloc(sizeof(ElementoLista));
aux=aux->next;
aux->info=p->info;
}
}
i=i->next;
}
p=p->next;
}
aux->next=NULL;
return(lista3);
}
int main() {
ListaDiElementi lista1,lista2,lista3;
lista1=crealista();
lista2=crealista();
lista3=intersezione(&lista1, &lista2);
stampalista(lista3);
return 0;
}
26/12/2018, 14:14
...
void intersezione_liste(nodo **destinazione, nodo *origine)
{
while(origine)
{
fun(destinazione, origine->dato);
origine = origine->next;
}
}
int main()
{
nodo *L1 = NULL;
nodo *L2 = NULL;
nodo *L3 = NULL;
...
intersezione_liste(&L3, L1);
intersezione_liste(&L3, L2);
}
30/12/2018, 13:04
#include <stdio.h>
#include <stdlib.h>
struct elemento{
int info;
struct elemento * next;
};
typedef struct elemento ElementoLista;
typedef ElementoLista* ListaDiElementi;
void stampalista(ListaDiElementi lista){
while(lista!=NULL){
printf("%d",lista->info);
lista=lista->next;
printf("\n");
}
}
void aggiungiintesta(ListaDiElementi *lista,int v){
ListaDiElementi aux;
aux=malloc(sizeof(ElementoLista));
aux->info = v;
aux->next = *lista;
*lista = aux;
}
void InserzioneOrdinata(ListaDiElementi *lista, int elem) {
if (*lista==NULL) {
aggiungiintesta(lista,elem);
}
else {
if ((*lista)->info > elem) {
aggiungiintesta(lista,elem);
}
else InserzioneOrdinata(&((*lista)->next), elem);
}
}
ListaDiElementi EliminaDoppi(ListaDiElementi lista3)
{
if(lista3==NULL)
return NULL;
ListaDiElementi prec=lista3;
ListaDiElementi corr=prec->next;
ListaDiElementi tmp=NULL;
while(corr!=NULL)
{
if(prec->info==corr->info)
{
tmp=corr;
prec->next=corr->next;
corr=corr->next;
free(tmp);
}
else
{
prec=corr;
corr=corr->next;
}
}
return lista3;
}
ListaDiElementi IntOrd(ListaDiElementi lista1, ListaDiElementi lista2){
ListaDiElementi l;
if ((lista1==NULL)||(lista2==NULL)){ return NULL;}
else if (lista1->info < lista2->info){
return IntOrd(lista1->next,lista2);
}
else if (lista1->info > lista2->info){
return IntOrd(lista1,lista2->next);
}
else{
l = malloc(sizeof(ElementoLista));
l->info = lista1->info;
l->next = IntOrd(lista1->next,lista2->next);
return l;
}
}
30/12/2018, 17:02
Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000—
Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.
Powered by phpBB © phpBB Group - Privacy policy - Cookie privacy
phpBB Mobile / SEO by Artodia.