mihaispr
Administrator
 Inregistrat: acum 18 ani
Postari: 2142
|
|
//Functiile de creare,afisare,inserare si stergere pt. o stiva//
#include<stdio.h> #include<conio.h> #include<alloc.h>
struct nod {int x; struct nod* next; } *st;
int n,i,x,a,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* sterge(struct nod *s) {struct nod* aux; if (!s) printf("Stiva este vida" ); else {aux=s; s=s->next; } return s; }
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; }
void main(void) {do { puts("" ); puts("1.Creare" ); puts("2.Afisare" ); puts("3.Stergere" ); puts("4.Inserare" ); 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: st=sterge(st);afisare(st);break; case 4: {printf("se adauga x=" );scanf("%5d",&v); st=insert(st,v);} } }while (opt!=5); getch(); }
|
|