Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct Element
- {
- struct Element *prev;
- int data;
- struct Element *next;
- }Element;
- typedef Element* List;
- List addFirst(int value, List l)
- {
- List nou;
- nou = (Element*) malloc(sizeof(Element));
- nou->prev = NULL;
- nou->data = value;
- nou->next = l;
- if(l == NULL)
- {
- l->data = value;
- l->prev = NULL;
- l->next=NULL;
- }
- else
- {
- l->prev = nou;
- l = nou;
- }
- return l;
- }
- List addLast(List l, int val)
- {
- List nou,q;
- if (l==NULL)
- {
- l->prev = NULL;
- l->data = val;
- l->next = NULL;
- }
- else
- {
- nou=(Element *)malloc(sizeof(Element));
- q=l;
- while(q->next!=NULL)
- q=q->next;
- nou->data=val;
- nou->next=NULL;
- nou->prev=q;
- q->next=nou;
- }
- return l;
- }
- List delFirst(List l)
- {
- if(l == NULL)
- return NULL;
- else
- {
- List nou;
- nou = l->next;
- free(l);
- l = nou;
- if(l != NULL)
- {
- l->prev = NULL;
- }
- }
- return l;
- }
- List delLast(List l)
- {
- List temp, tmp;
- tmp = l;
- while(tmp->next != NULL)
- {
- tmp = tmp->next;
- }
- tmp->prev->next = NULL;
- free(tmp->next);
- return l;
- }
- void print(List l)
- {
- if(l == NULL)
- {
- printf("Lista este nula!");
- }
- else
- {
- while(l->next != NULL)
- {
- printf("%d ",l->data);
- l = l->next;
- }
- }
- printf("\n");
- }
- List init(int val)
- {
- List l;
- l = (Element *) malloc(sizeof(Element));
- l->prev = NULL;
- l->data = val;
- l->next = NULL;
- return l;
- }
- int main()
- {
- List l;
- int x;
- scanf("%d", &x);
- l = init(x);
- l = addFirst(5, l);
- l = addFirst(6, l);
- l = addFirst(7, l);
- scanf("%d", &x);
- while(x!= 0)
- {
- l = addFirst(x, l);
- scanf("%d", &x);
- }
- l = addLast(l, 10);
- l = addLast(l, 11);
- l = addLast(l, 12);
- print(l);
- printf("Sterge primul element!\n");
- l = delFirst(l);
- print(l);
- printf("Sterge ultimul element!\n");
- l = delLast(l);
- print(l);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment