1. Se citeste de la intrare un sir de valori numerice intregi, pe o linie, separate de spatii, sir care se incheie cu o valoare 0. a) Sa se depuna elementele citite intr-o lista inlantuita neordonata (prin inserari repetate in fata). b) Sa se afiseze continutul listei. c) Se citeste o valoare intreaga si sa se determine daca aceasta se gaseste in lista. d) Sa se ordoneze lista si sa se se parcurga lista ordonata pentru afisare. EXEMPLU DE RULARE: Introduceti elementele listei: 5 3 7 10 4 9 1 0 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Am citit: 1 9 4 10 7 3 5 Valoarea cautata: 9 Ä Valoarea 9 este in lista! Lista ordonata: 1 3 4 5 7 9 10 NOTA: Portiunile nesubliniate sint afisate de program, iar cele subliniate sint introduse de la tastatura. ===================================================== #include #include #include "lista.h" void InitLista(Elem*& p) { p = NULL; } void InsertFata(Elem*& p,int data) { Elem* x; x = new Elem; x -> nr = data; x -> link = p; p = x; } void AfisLista(Elem*& p) { Elem* q; q = p; if ( p == NULL ) printf(" LISTA ESTE VIDA \a"); else{ printf("LISTA INTRODUSA ESTE : \n"); while ( q != NULL ){ printf(" %d ", q -> nr); q = q -> link;}} printf("\n"); } void CitElement(Elem*& p) { int nr=0; char c; printf("\nINTRODUCETI NR. INTREGI TERMINATE CU CIFRA 0 \n "); while ( (c = getchar()) != '0' ){ if ( c > '0' && c <= '9') nr = nr*10 + c-'0'; else{ InsertFata(p,nr); nr = 0; }} } void CitNumar(Elem*& p) { int val; printf("\nINTRODUCETI UN NUMAR INTREG : "); scanf("%d",&val); if( Cauta(p,val) == 0 ) printf("\nNUMARUL %d SE AFLA IN LISTA \n",val); else printf("\nNUMARUL %d NU SE AFLA IN LISTA\n ",val); } int Cauta(Elem*& p,int data) { Elem* q; q = p; if( p == NULL ) printf("STAVA VIDA \a"); while( q != NULL ){ if( q -> nr == data) return 0; else q = q -> link;} return -1; } void SortLista(Elem*& p) { Elem* q; int cond,t; q = p; printf("LISTA SORTATA EATE : \n"); while( cond ==0 ){ cond = 1; for(q=p;(q->link) != NULL;q=q->link) if( (q->nr) > ((q->link)->nr) ){ t = (q->nr); (q->nr) = ((q->link)->nr); ((q->link)->nr) = t; cond = 0;}} } #ifndef _LISTA_ #define _LISTA_ struct Elem{ int nr; Elem* link; }; void InitLista(Elem*& p); void InsertFata(Elem*& p,int data); void AfisLista(Elem*& p); void CitElement(Elem*& p); void CitNumar(Elem*& p); int Cauta(Elem*& p,int data); void SortLista(Elem*& p); #endif #include #include #include "lista.cpp" void main() { Elem* p; clrscr(); InitLista(p); CitElement(p); AfisLista(p); CitNumar(p); SortLista(p); AfisLista(p); getch(); }