Miti059

stack double

Oct 20th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.09 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct Node {
  5.     int data;
  6.     struct Node *next, *prev;
  7.  
  8. }node;
  9.  
  10. node* head=NULL, *tail;
  11.  
  12. void push(int x)
  13. {
  14.     node* newnode;
  15.     newnode=(node*)malloc(sizeof(node));
  16.     newnode->data=x;
  17.     newnode->next=NULL;
  18.     newnode->prev=NULL;
  19.     if(head==NULL) {
  20.         tail=newnode;
  21.         head=newnode;
  22.     }
  23.     else {
  24.         newnode->next=head;
  25.         head->prev=newnode;
  26.         head=newnode;
  27.     }
  28. }
  29.  
  30. int pop()
  31. {
  32.     if(head == NULL) {
  33.         printf("Stack is Empty !\n");
  34.     }
  35.     else{
  36.         node *temp = head;
  37.         head = head->next;
  38.         head->prev=NULL;
  39.         free(temp);
  40.     }
  41. }
  42. void print()
  43. {
  44.     node*current=tail;
  45.  
  46.     while(current!=NULL)
  47.     {
  48.  
  49.         printf("data: %d\n", current->data);
  50.         current=current->prev;
  51.     }
  52.     printf("\n");
  53.  
  54. }
  55.  
  56. int main(){
  57.  
  58. int x,n,i,m;
  59. printf("Enter input number: ");
  60.      scanf("%d",&n);
  61.      for(i=0;i<n;i++){
  62. printf("Enter stack data");
  63.     scanf("%d",&x);
  64.     push(x);}
  65.     print();
  66.  
  67.     pop();
  68.     print();
  69.  
  70.     return 0;}
Advertisement
Add Comment
Please, Sign In to add comment