Você está na página 1de 2

#include <stdio.h> #include <conio.h> #include <malloc.

h> struct nod{ int inf; nod* ls,*ld; }; void inserare(nod* &cap, int info) { nod *curs; nod*nou; nou=(nod*)malloc(sizeof(nod)); curs=(nod*)malloc(sizeof(nod)); nou->ls=NULL; nou->ld=NULL; nou->inf=info; if (cap!=NULL) { curs=cap; while(curs->ld!=NULL) // curs=curs->ld; nou->ls=curs; curs->ld=nou; } else //capul este nul cap=nou; } void afisare (nod* cap) { if(cap!=NULL) { //lista nu e vida printf("lista este: "); while(cap!=NULL) { printf("%d \n", cap->inf); cap=cap->ld; } } else //lista este vida printf("lista este nula \n"); } nod* cautare(nod* cap, int poz) { int i=0; while (cap!=NULL && i<poz) cap=cap->ld; i++; if (i==poz) return cap; else

return NULL; } void interior(nod *element) { element->ls->ld = element->ld; element->ld->ls = element->ls; free (element); } void stergere(nod* cap, int poz) { if (cap==NULL) printf("lista este nula"); if(poz==0) { nod* st=cap; cap=cap->ld; cap->ls=NULL; free(st); nod* elem=cautare(cap,poz); interior(elem); } return; }

void main() { nod* cap=NULL; int i,n,f,pds; printf ("Numarul de noduri inserate este"); scanf("%d", &n); for(i=0;i<n;i++) { printf("informatia introdusa este:"); scanf("%d", &f); inserare(cap,f); } afisare(cap); printf("introduceti pozitia de sters: "); scanf ("%d", &pds); stergere(cap,pds); afisare(cap); }