Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct SInfo
- {
- int value;
- };
- typedef struct SInfo TInfo;
- struct SNode
- {
- TInfo info;
- struct SNode *next;
- };
- typedef struct SNode TNode;
- typedef TNode *TList;
- TList Crea_Lista()
- {
- return NULL;
- }
- TList Leggi_Info()
- {
- TInfo info;
- printf("Inserisci numero: ");
- scanf("%d",info.value);
- }
- TList Inserisci_Elemento(TList lista,TInfo info)
- {
- TList prec,curr,new_node;
- prec=NULL;
- curr=lista;
- while(curr!=NULL && info.value > curr->info.value) ///trova la posizione di inserimento in modo da insere l'elemento in ordine
- {
- prec=curr;
- curr=curr->next;
- }
- new_node=(TNode*)malloc(sizeof(TNode)); ///allocazione dinamica
- if(new_node==NULL){printf("Errore di allocazione");exit(1);}
- new_node->info=info;
- if(prec==NULL)///inserimento in testa
- {
- new_node->next=lista;
- lista=new_node;
- return lista;
- }
- else ///inserimento in mezzo o fondo
- {
- prec->next=new_node;
- new_node->next=curr;
- return lista;
- }
- }
- TList Cancella_Lista(TList lista)
- {
- TList curr,succ;
- curr=lista;
- while(curr!=NULL)
- {
- succ=curr->next;
- free(curr);
- curr=succ;
- }
- return NULL;
- }
- TNode *Cerca(TList lista,int elem)
- {
- TNode *curr;
- curr=lista;
- while(curr!=NULL && elem > curr->info.value)
- curr=curr->next;
- if(elem == curr->info.value)
- return curr;
- else
- return NULL;
- }
- TList Cancella_Elemento(TList lista,int elem)
- {
- TList prec,curr;
- prec=NULL;
- curr=lista;
- while(curr!=NULL && elem > curr->info.value)
- {
- prec=curr;
- curr=curr->next;
- }
- if(elem == curr->info.value)
- {
- if(prec==NULL)///eliminazione di testa
- {
- lista=curr->next;
- free(curr);
- }
- else
- {
- prec->next=curr->next;
- free(curr);
- }
- }
- return lista;
- }
- int main()
- {
- printf("Hello world!\n");
- return 0;
- }
Add Comment
Please, Sign In to add comment