mihaispr
Administrator
 Inregistrat: acum 17 ani
Postari: 2142
|
|
//Divizarea unei cozi in 2 cozi una a el.pozitive si alta a el.negative
#include<stdio.h> #include<conio.h> #include<alloc.h>
struct nod {int x; struct nod* next; }* prim,* ultim,*q1,*q2;
int n,i,x,opt,v;
int vida() {if ((prim==NULL)&&(ultim==NULL)) return 1; else return 0; }
void creare() {struct nod* aux;int v; prim=ultim=NULL; for(i=1;i<=n;i++) {aux= (struct nod* )malloc(sizeof(struct nod)); printf("valoarea nodului %d=",i); scanf("%d",&v); aux->x=v; if (i==1) prim=ultim=aux; else {ultim->next=aux; ultim=aux; } } }
void afisare() {struct nod* c; if (prim==ultim && prim==NULL) printf("\nCoada vida" ); else for(c=prim;c;c=c->next) printf("%d",c->x); }
void divizare(struct nod* q) {struct nod* c,*aux;int i=1; q1=NULL; q2=NULL; for(c=q;c;c->next) {aux= (struct nod* )malloc(sizeof(struct nod)); aux->x=c->x; if((c->x>0)) {aux->next=q1; q1=aux; } else {aux->next=q2; q2=aux; } } }
{do puts("" ); puts("1.Creare" ); puts("2.Afisare" ); puts("3.Divizare" ); puts("4.Terminare" ); printf("Alegeti optiunea" ); scanf("%d",&opt); switch(opt) { case 1: printf("nr.de noduri este" );scanf("%d",&n); creare(); case 2: afisare();printf("nr.de elem este %d" );scanf("%d",&nrx);break; case 3: {printf("Coada nr.pozitive" );afisare(q1); printf("Coada nr.negative" );afisare(q2); divizare(q); } } } while (opt<=4); getch(); }
|
|