mihaispr
Administrator
 Inregistrat: acum 18 ani
Postari: 2142
|
|
//Functia de adaugare intr-o lista simplu inlantuita circulara
#include <conio.h> #include <stdio.h> #include <alloc.h>
struct nod{ int x; struct nod *next;} *l; //la met2 se declara dupa *l si *ultim//
int i,n,x,p;
struct nod*creare() {struct nod*aux,*q; int a; l=NULL; for (i=n;i>=1;i--) { aux= (struct nod*) malloc (sizeof(struct nod)); printf("\nInfo. nodului %d = ",i); scanf("%d",&a); aux->x=a; aux->next=l; if (i==n) q=aux; l=aux; } q->next=l; return l; }
void afisare(struct nod*l) {struct nod*c; c=l; printf("%d",c->x); c=l->next; while (c!=l) { printf("%d",c->x); c=c->next; } }
struct nod *adaugare(struct nod *l,int x,int p) {struct nod *c,*aux,*ultim; aux= (struct nod*)malloc(sizeof(struct nod)); aux->x=x; if (p==1 || p==n+1) {aux->next=l; ultim->next=aux; l=aux; } else { for(c=l,i=1;i<=p-2;i++) c=c->next; aux->next=c->next; c->next=aux; } return l; }
void main() { l=creare(); afisare(l); l=adaugare(l,x,p); }
|
|