fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct node{
  5. int val;
  6. struct node*next;
  7. }Node;
  8.  
  9. Node*head=NULL;
  10.  
  11. Node*createN(int x){
  12. Node*newnode;
  13. newnode=(Node*)malloc(sizeof(Node));
  14. newnode->val=x;
  15. newnode->next=NULL;
  16. return newnode;
  17. }
  18.  
  19. void freeL(){
  20. Node*p;
  21. while(head!=NULL){
  22. p=head->next;
  23. free(head);
  24. head=p;
  25. }
  26. }
  27.  
  28. void printL(){
  29. Node*p=head;
  30. while(p!=NULL){
  31. printf("%d ",p->val);
  32. p=p->next;
  33. }
  34. printf("\n");
  35. }
  36.  
  37. void push(int x){
  38. Node*newnode=createN(x);
  39. newnode->next=head;
  40. head=newnode;
  41. }
  42.  
  43. int pop(){
  44. if(head==NULL)return 0;
  45. Node*temp=head;
  46. head=head->next;
  47. free(temp);
  48. return 0;
  49. }
  50.  
  51. void enqueue(int x){
  52. Node*newnode=createN(x);
  53. if(head==NULL){
  54. head=newnode;
  55. }else{
  56. Node*p=head;
  57. while(p->next!=NULL)p=p->next;
  58. p->next=newnode;
  59. }
  60. }
  61.  
  62. int dequeue(){
  63. if(head==NULL)return 0;
  64. Node*temp=head;
  65. head=head->next;
  66. free(temp);
  67. return 0;
  68. }
  69.  
  70. int main(void){
  71. int s1,s2,s3,q1,q2,q3;
  72.  
  73. push(1);
  74. push(2);
  75. push(3);
  76. s1=pop();
  77. s2=pop();
  78. s3=pop();
  79. printf("%d %d %d\n",s1,s2,s3);
  80.  
  81. enqueue(1);
  82. enqueue(2);
  83. enqueue(3);
  84. q1=dequeue();
  85. q2=dequeue();
  86. q3=dequeue();
  87. printf("%d %d %d\n",q1,q2,q3);
  88.  
  89. freeL();
  90. return 0;
  91. }
Success #stdin #stdout 0s 5320KB
stdin
1 2 3
1 2 3
stdout
0 0 0
0 0 0