Guest User

Untitled

a guest
Aug 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. struct node{
  5. int data;
  6. struct node *link;
  7. }*head = NULL, *new_node, *ptr=NULL, *prev_ptr, *temp;
  8.  
  9. void insertBeg(){
  10. int info;
  11. new_node = (struct node*)malloc(sizeof(struct node));
  12. printf("nEnter data : ");
  13. scanf("%d",&info);
  14. new_node->data=info;
  15. new_node->link=NULL;
  16. if(head==NULL){
  17. head=new_node;
  18. }
  19. else{
  20. new_node->link=head;
  21. head=new_node;
  22. }
  23. }
  24.  
  25. void insertEnd(){
  26. int info;
  27. new_node = (struct node*)malloc(sizeof(struct node));
  28. printf("nEnter data : ");
  29. scanf("%d",&info);
  30. new_node->data=info;
  31. if(head==NULL){
  32. head=new_node;
  33. new_node->link=NULL;
  34. }
  35. else{
  36. prev_ptr=head;
  37. ptr=head->link;
  38. while(ptr!=NULL){
  39. prev_ptr=ptr;
  40. ptr=ptr->link;
  41. }
  42. prev_ptr->link=new_node;
  43. new_node->link=NULL;
  44. }
  45. }
  46.  
  47. void displayNode(){
  48. printf("nLinked List is : ");
  49. ptr=head;
  50. while(ptr!=NULL){
  51. printf("%d--->",ptr->data);
  52. ptr=ptr->link;
  53. }
  54. }
  55.  
  56. void deleteBeg(){
  57. if(head==NULL){
  58. printf("nUnderflow");
  59. }
  60. else{
  61. temp=head;
  62. head=head->link;
  63. free(temp);
  64. }
  65. }
  66.  
  67. void deleteEnd(){
  68. if(head==NULL){
  69. printf("nUnderflow");
  70. }
  71. else{
  72. prev_ptr=head;
  73. ptr=head->link;
  74. while(ptr!=NULL){
  75. prev_ptr=ptr;
  76. ptr=ptr->link;
  77. }
  78. prev_ptr->link=NULL;
  79. free(ptr);
  80. }
  81. }
  82.  
  83. void traverse(){
  84. int count=0;
  85. ptr=head;
  86. while(ptr!=NULL){
  87. ptr=ptr->link;
  88. count++;
  89. }
  90. printf("nNumber of elements in the list are : %d",count);
  91. }
  92.  
  93. int main(){
  94. int choice,ch='y';
  95. label:
  96. printf("nPress 1 to insert at begn2 to insert at end");
  97. printf("n3 to delete from begn4 to delete from end");
  98. printf("n5 to display the listn6 to traverse the linked list : ");
  99. scanf("%d",&choice);
  100. switch(choice){
  101. case 1: insertBeg();
  102. break;
  103. case 2: insertEnd();
  104. break;
  105. case 3: deleteBeg();
  106. break;
  107. case 4: deleteEnd();
  108. break;
  109. case 5: displayNode();
  110. break;
  111. case 6: traverse();
  112. break;
  113. default: printf("nInvalid Option");
  114. }
  115. printf("nPress y to continue or any other key to exit : ");
  116. scanf("%s",&ch);
  117. if(ch=='y' || ch=='Y'){
  118. goto label;
  119. }
  120. getch();
  121. return 0;
  122. }
Add Comment
Please, Sign In to add comment