mihaispr
Administrator
 Inregistrat: acum 17 ani
Postari: 2142
|
|
//Nr.el.poz,neg si nule din lista,inv el.listei si ord cresc. a el.listei//
#include<stdio.h> #include<conio.h> #include<alloc.h> struct nod { int x; struct nod* next; }*l,*linv;
int n,i,nrx,j,a[20],aux; struct nod* creare() { struct nod* aux; int v; l=NULL; for(i=n;i>=1;i--) { aux= (struct nod* )malloc(sizeof(struct nod)); printf("valoarea nodului %d=",i); scanf("%d",&v); aux->x=v; aux->next=l; l=aux; } return l; }
void afisare(struct nod* l) {nrx=0; struct nod* c; printf("nlista este" ); if (!l) printf("vida" ); else { c=l; while (c) if(c->x>0) //pt.neg c->x<0,pt.nule c->x==0// { printf("%3d",c->x); nrx++; c=c->next; } } }
void crescator(struct nod * l) { struct nod* c,*c1; for(c=l;c->next;c=c->next) { for(c1=c->next;c1;c1=c1->next) if(c->x>c1->x) {aux=c->x; c->x=c1->x; c1->x=aux; } } printf("n" ); afisare(l); }
struct nod* inversa(struct nod *l) { struct nod* aux,*c; int v; linv=NULL; for(c=l;c;c=c->next) { aux= (struct nod* )malloc(sizeof(struct nod)); aux->x=c->x; aux->next=linv; linv=aux; } return linv; }
void main(void) { clrscr(); printf ("nr de noduri este" ); scanf("%d",&n); l=creare(); afisare(l); printf("nEl.pozitive apar de %d ori in lista",nrx); linv=inversa(l); afisare(linv); crescator(l); getch(); }
|
|