mihaispr
Administrator
 Inregistrat: acum 17 ani
Postari: 2142
|
|
#include<stdio.h> #include<conio.h> #include<alloc.h>
struct nod {int x; struct nod* next; } *st,*st1;
int n,i,x,opt,v;
struct nod* creare() {struct nod* aux;int v; st=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=st; st=aux; } return st; }
void afisare(struct nod* s) {struct nod* c; printf("\nStiva este" ; if (!s) printf("vida" ; else for(c=s;c;c=c->next) printf("%d",c->x); }
struct nod* insert(struct nod* s,int v) {struct nod* aux; aux struct nod* )malloc(sizeof(struct nod)); aux->x=v; aux->next=s; s=aux; return s; }
struct nod* concat(struct nod* st,struct nod* st1) {struct nod* c,*c1,*aux,*st2;int i=1; st2=NULL; //adaugarea el.din prima stiva for(c=st;c;c=c->next) {st2=insert(st2,c->x,i); i++; } //adaugarea el.din a doua stiva for(c1=st1;c1;c1=c1->next) {st2=insert(st2,c->x,i); i++; } return st2; }
void main(void) {do puts("" ; puts("1.Creare" ; puts("2.Afisare" ; puts("3.Inserare" ; puts("4.Concatenare" ; puts("5.Terminare" ; printf("Alegeti optiunea" ; scanf("%d",&opt); switch(opt) { case 1: printf("nr.de noduri este" ;scanf("%d",&n); st=creare; case 2: afisare(st);break; case 3: {printf("se adauga x=" ;scanf("%5d",&v); st=insert(st,v); } case 4: {concat(st,st1);afisare();break; } } while (opt<=5); } getch();
|
|