mihaispr
Administrator
 Inregistrat: acum 17 ani
Postari: 2142
|
|
/*Se citesc elementele a doua siruri de nr.reale.Sfarsitul fiecarui sir este marcat prin prezenta pe pozitia i a nr.i.Sa se formeze din toate elem celor 2 siruri o ldi cu elem.ordonate si sa se afiseze acele el.in ordine cresca- toare si descrescatoare*/
#include<stdio.h> #include<conio.h> #include<process.h> #include<alloc.h>
struct nod { int x; struct nod* pred,* next; }*l;
int i,n,opt,p,x;
struct nod* creare(struct nod* l) {struct nod *aux;int v; l=NULL; for(i=n;i>=1;i--) { printf("inform.nodului %d",i); scanf("%d",&v); aux= (struct nod* )malloc(sizeof(struct nod)); aux->x=v; aux->pred=NULL; aux->next=l; l->pred=aux; l=aux; } return l; }
void afisare_SD(struct nod *l,*aux) {struct nod *c; if (!l) printf("\n Lista este vida:" ); else {for(c=l;c;c=c->next) printf("%d",c->x); } }
void crescator(struct nod * l,* aux) { 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_SD(l); }
void descrescator(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_SD(l); }
void main(void) {
do { puts("" ); puts("1.Creare" ); puts("2.Afisare" ); puts("3.Crescator" ); puts("4.Descrescator" ); puts("5.Terminare" ); printf("Alegeti optiunea" ); scanf("%d",&opt); switch(opt) { case 1:{printf("nr de noduri este" );scanf("%d",&n);l=creare(l); break;} case 2:afisare_SD(l); break; case 3:crescator(l); case 4:descrescator(l); } } while(opt<=5); getch(); }
|
|