mihaispr
Administrator
 Inregistrat: acum 17 ani
Postari: 2142
|
|
//Creati o lista simplu inlantuita care permite stergerea a m inregistrari cu numar de ordine p1
#include<stdio.h> #include<conio.h> //directiva pt.clrscr() si getch() din prog.principal void main() #include<iostream.h> //directiva pt.afisarea nu cu printf ci cu cout<<"Mesaj:"<<variabila #include<alloc.h> //directiva ce foloseste functiile de alocare new si dealocare delete struct nod { int x; struct nod* next; }*l;
int n,i,q,t,p1,m;
struct nod* creare() { struct nod* aux; int v; l=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=l; l=aux; } return l; }
void afisare() { struct nod* c; printf("lista este" ); if (!l) printf("vida" ); else { c=l; while (c) { printf("%3d",c->x); c=c->next; } } }
void stergere() {struct nod* c; c=l; //se pozitioneaza pe inregistrarea cu numar de ordine p1+1 for(i=1;i<=p1;i++) { t=c;// t este inregistrarea cu numar de ordine p1 c=c->next;// c este inregistrarea cu numar de ordine p1+1 } for(i=1;i<=m;i++) q=c; //se pastreaza inregistrarea c intr-o variabila q t->next=c->next; //se stabilesc legaturile intre vecinii lui q,t si c->next delete q; //se distruge q }
void main(void) { clrscr(); printf ("nr de noduri este:" ); scanf("%d",&n); l=creare(); afisare(); stergere(); afisare(); getch(); }
|
|