W.A.P. C++

WAP | CPP | Programs in C++ | C++ Solutions

Write a program to Implement a Linked List in C++


The user is provided with the following options..

To insert an item at begining
To insert an item at end
To insert an item at position
To traverse the list
To delete first item
To delete last item
To delete item from position
To count no. of items in list


Select To use this code as it is.. select and copy paste this code into code.cpp file :)
  1. #include<conio.h>
  2. #include<stdio.h>
  3. #include<alloc.h>
  4. #include<process.h>
  5. struct node
  6. { int info;
  7. struct node *next;
  8. };
  9. typedef struct node sn;
  10. void insertatbeg(sn **,int);
  11. void insertatend(sn **,int);
  12. void insertatpos(sn **,int,int);
  13. void traverse(sn *);
  14. int delfirst(sn *);
  15. int dellast(sn *);
  16. int delpos(sn *,int);
  17. int count(sn *);
  18. //Coding by: Snehil Khanor
  19. //http://WapCPP.blogspot.com
  20. void main()
  21. { sn *p;
  22. int n,i,l;
  23. char ch;
  24. clrscr();
  25. p=NULL;
  26. do
  27. { printf("\n-----select an operation-----");
  28. printf("\n1->To insert an item at begining<-");
  29. printf("\n2->To insert an item at end<-");
  30. printf("\n3->To insert an item at position<-");
  31. printf("\n4->To traverse the list<-");
  32. printf("\n5->To delete first item<-");
  33. printf("\n6->To delete last item<-");
  34. printf("\n7->To delete item from position<-");
  35. printf("\n8->To count no. of items in list<-");
  36. printf("\n9->Exit<-");
  37. printf("\n->Enter your choice:");
  38. scanf("%d",&n);
  39. switch(n)
  40. { case 1:printf("\n->Enter the item to insert");
  41. scanf("%d",&i);
  42. insertatbeg(&p,i);
  43. break;
  44. case 2:printf("\n->Enter the item to insert");
  45. scanf("%d",&i);
  46. insertatend(&p,i);
  47. break;
  48. case 3:printf("\n->Enter the item to insert");
  49. scanf("%d",&i);
  50. printf("\n->Enter the position");
  51. scanf("%d",&l);
  52. insertatpos(&p,i,l);
  53. break;
  54. case 4:traverse(p);
  55. break;
  56. case 5:i=delfirst(p);
  57. printf("\nItem deleted is %d.",i);
  58. break;
  59. case 6:i=dellast(p);
  60. printf("\nItem deleted is %d.",i);
  61. break;
  62. case 7:printf("\n->Enter the position");
  63. scanf("%d",&l);
  64. i=delpos(p,l);
  65. printf("\nItem deleted is %d.",i);
  66. break;
  67. case 8:i=count(p);
  68. printf("\nNumber of nodes in list are %d.",i);
  69. break;
  70. case 9:exit(0);
  71. break;
  72. default:printf("\n->You have entered wrong choice");
  73. }
  74. printf("\n->Do you want to continue/exit(y/n)");
  75. fflush(stdin);
  76. scanf("%c",&ch);
  77. } while((ch=='y')||(ch=='Y'));
  78. getch();
  79. }
  80. int count(sn *p)
  81. { sn *temp;
  82. int c=1;
  83. temp=p;
  84. while((temp->next)!=NULL)
  85. { c++;
  86. temp=temp->next;
  87. }
  88. return c;
  89. }
  90. void insertatbeg(sn **p,int item)
  91. { sn *ptr;
  92. ptr=(sn *)malloc(sizeof(sn));
  93. ptr->info=item;
  94. if(*p==NULL)
  95. ptr->next=NULL;
  96. else
  97. ptr->next=*p;
  98. *p=ptr;
  99. }
  100. void insertatend(sn **p,int item)
  101. { sn *ptr,*temp;
  102. ptr=(sn *)malloc(sizeof(sn));
  103. ptr->info=item;
  104. ptr->next=NULL;
  105. if(*p==NULL)
  106. *p=ptr;
  107. else
  108. { temp=*p;
  109. while((temp->next)!=NULL)
  110. temp=temp->next;
  111. temp->next=ptr;
  112. }
  113. }
  114. void insertatpos(sn **p,int item,int loc)
  115. { sn *ptr,*temp,*s;
  116. int i,c;
  117. temp=*p;
  118. ptr=(sn *)malloc(sizeof(sn));
  119. ptr->info=item;
  120. c=count(*p);
  121. if(loc>c)
  122. printf("\nList is short,Item can't inserted");
  123. else
  124. {
  125. for(i=0;i<loc-1;i++)
  126. { s=temp;
  127. temp=temp->next;
  128. }
  129. ptr->next=s->next;
  130. s->next=ptr;
  131. }
  132. }
  133. //Coding by: Snehil Khanor
  134. //http://WapCPP.blogspot.com
  135. void traverse(sn *p)
  136. { sn *temp;
  137. if(p==NULL)
  138. printf("\nList is empty.");
  139. else
  140. {
  141. temp=p;
  142. while((temp->next)!=NULL)
  143. { printf("\nno.=%d",temp->info);
  144. temp=temp->next;
  145. }
  146. printf("\nno.=%d",temp->info);
  147. }
  148. }
  149. int delfirst(sn *p)
  150. { int item;
  151. sn *temp;
  152. if(p==NULL)
  153. { printf("\nList is empty");
  154. return 0;
  155. }
  156. else
  157. { temp=p;
  158. p=p->next;
  159. item=temp->info;
  160. free(temp);
  161. return item;
  162. }
  163. }
  164. int dellast(sn *p)
  165. { int item;
  166. sn *temp,*s;
  167. if(p==NULL)
  168. { printf("\nList is empty");
  169. return 0;
  170. }
  171. else
  172. { temp=p;
  173. while((temp->next)!=NULL)
  174. { s=temp;
  175. temp=temp->next;
  176. }
  177. item=temp->info;
  178. s->next=NULL;
  179. free(temp);
  180. return item;
  181. }
  182. }
  183. int delpos(sn *p,int loc)
  184. { int item,i,c;
  185. sn *temp,*s;
  186. c=count(p);
  187. if(p==NULL)
  188. { printf("\nList is empty");
  189. return 0;
  190. }
  191. else
  192. { if(loc>c)
  193. { printf("\nItem is not in list.");
  194. return 0;
  195. }
  196. else
  197. { temp=p;
  198. for(i=0;i<loc-1;i++)
  199. { s=temp;
  200. temp=temp->next;
  201. }
  202. item=temp->info;
  203. s->next=temp->next;
  204. free(temp);
  205. return item;
  206. }
  207. }
  208. }

6 comments:

Manish February 26, 2011 at 10:28 PM  

bhai sahib ismein errors check krke hi program dala kro sara time waste krdeta ho.....

Anonymous August 9, 2011 at 11:35 AM  

Please give a sample output for all programs....

Deven January 10, 2012 at 7:00 AM  

Q.1 write a program to perform push and pop operation in stack

Q.2 Write a program to convert infix expression to post fix formulaty stack.
Q.3 Write a program to calculate a post fix expression using stack.
Q.4 Write a program to insert element in queue.
Q.5 Write a program to delete element in queue.
Q.6 write a program to add element in circular queue

Anonymous February 21, 2012 at 10:37 PM  

This code is in C language not C++.

Anonymous June 13, 2015 at 5:31 PM  

This is fake. Try to hack This site : www.playcapital.org

Mayank Saini October 10, 2017 at 9:18 AM  

Very Nice informative blog..
Keep it up..

Also visit: Frickygeeks to start blogging and make money online

Search

About WAP C++

Here you'll find a wide range of programs' solution ranging from beginer level to advanced level.
All programs here are made, compiled and tested by me..and are running absolutely fine.. still if you find any bug in any program do let me know :)

Followers

Subscribe via email

Enter your email address:

Delivered by FeedBurner

my Binary Log

Recent Posts



eXTReMe Tracker