Advertisement
Guest User

Kode Program Single Linked List

a guest
Oct 15th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1. #include <conio.h>
  2. #include <iostream.h>
  3. #include <stdio.h>
  4.  
  5. typedef struct simpul tsimpul;
  6. struct simpul
  7. {
  8. int info;
  9. tsimpul *next;
  10. };
  11. tsimpul *awal = NULL, *akhir = NULL, *data, *hapus, *b1, *b2;
  12. void muncul()
  13. {
  14. b1=awal;
  15. cout<<"\n DATA ==> ";
  16. while(b1!=NULL)
  17. {
  18. cout<<b1->info;
  19. b1=b1->next;
  20. cout<<" ";
  21. }
  22. }
  23.  
  24. void tambah_awal(int x)
  25. {
  26. data=new simpul;
  27. data->info=x;
  28. data->next=NULL;
  29. if(awal==NULL)
  30. {
  31. awal=akhir=data;
  32. }
  33. else
  34. {
  35. data->next=awal;
  36. awal=data;
  37. }
  38. }
  39.  
  40. void tambah_akhir(int x)
  41. {
  42. data=new simpul;
  43. data->info=x;
  44. data->next=NULL;
  45. if(awal==NULL)
  46. {
  47. awal=akhir=data;
  48. }
  49. else
  50. {
  51. akhir->next=data;
  52. akhir=data;
  53. }
  54. }
  55.  
  56. void tambah_tengah(int in,int setelah)
  57. {
  58. b1=awal;
  59. int ada=0;
  60. while (b1 != NULL)
  61. {
  62. if (b1->info == setelah)
  63. {
  64. ada++;
  65. }
  66. b1 = b1->next;
  67. }
  68. if(ada==0)
  69. cout<<"\n-->Data Yang Di Masukkan Tidak Falid<--\n\n";
  70. else
  71. {
  72. b1=awal;
  73. b2=b1->next;
  74. while(b1->info!=setelah)
  75. {
  76. b1=b1->next;
  77. b2=b1->next;
  78. }
  79. data=new simpul;
  80. data->info=in;
  81. b1->next=data;
  82. if(b1==akhir)
  83. {
  84. akhir=data;
  85. }
  86. data->next=b2;
  87. }
  88. }
  89.  
  90. void hapus_awal()
  91. {
  92. if(awal==NULL)
  93. {
  94. cout<<"Maaf....List Kosong!!!\n";
  95. }
  96. else if (awal==akhir)
  97. {
  98. hapus=awal;
  99. awal=NULL;
  100. akhir=NULL;
  101. }
  102. else
  103. {
  104. hapus=awal;
  105. awal=awal->next;
  106. }
  107. }
  108.  
  109. void hapus_akhir()
  110. {
  111. if(awal==NULL)
  112. {
  113. cout<<"Maaf....List Kosong!!!\n";
  114. }
  115. else if(awal==akhir)
  116. {
  117. hapus=awal;
  118. awal=NULL;
  119. akhir=NULL;
  120. }
  121. else
  122. {
  123. b1=awal;
  124. while(b1->next!=akhir)
  125. {
  126. b1=b1->next;
  127. }
  128. hapus=akhir;
  129. b1->next=NULL;
  130. akhir=b1;
  131. }
  132. }
  133.  
  134. void hapus_tengah(int x)
  135. {
  136. tsimpul *b;
  137. int ada=0;
  138. b=awal;
  139. if(awal==NULL)
  140. cout<<"Maaf....List Kosong!!!\n";
  141. else if(b->info==x)
  142. hapus_awal();
  143. else if(akhir->info==x)
  144. hapus_akhir();
  145. else
  146. {
  147. while(b!=NULL)
  148. {
  149. if(b->info==x)
  150. {
  151. ada++;
  152. }
  153. b=b->next;
  154. }
  155. if(ada==0)
  156. cout<<"\n-->Data Yang Di Masukkan Tidak Falid<--\n\n";
  157. else
  158. {
  159. b=awal;
  160. while(b->next->info!=x)
  161. {
  162. b=b->next;
  163. }
  164. b1=b->next;
  165. b2=b1->next;
  166. hapus=b1;
  167. b->next=b2;
  168. }
  169. }
  170. }
  171.  
  172. void main()
  173. {
  174. int pilih,n,nn;
  175. char lagi;
  176. do
  177. {
  178. clrscr();
  179. cout<<"================================================\n";
  180. cout<<"|| PROGRAM SINGLE LINKED LIST ||\n";
  181. cout<<"================================================\n";
  182. muncul();
  183. cout<<"\n\n1. Tambah Awal";
  184. cout<<"\n2. Tambah Akhir";
  185. cout<<"\n3. Tambah Tengah";
  186. cout<<"\n4. Hapus Awal";
  187. cout<<"\n5. Hapus Akhir";
  188. cout<<"\n6. Hapus Tengah\n==========================";
  189. cout<<"\nPilihan Anda : ";cin>>pilih;
  190. cout<<"==========================\n";
  191. switch(pilih)
  192. {
  193. case 1:
  194. cout<<"Masukkan Data : ";cin>>n;
  195. tambah_awal(n);
  196. break;
  197. case 2:
  198. cout<<"Masukkan Data : ";cin>>n;
  199. tambah_akhir(n);
  200. break;
  201. case 3:
  202. cout<<"Masukkan Data : ";cin>>n;
  203. cout<<"Dimasukkan Setelah : ";cin>>nn;
  204. tambah_tengah(n,nn);
  205. break;
  206. case 4: hapus_awal();
  207. break;
  208. case 5:
  209. hapus_akhir();
  210. break;
  211. case 6:
  212. cout<<"data yg ingin di hapus : ";cin>>nn;
  213. hapus_tengah(nn);
  214. break;
  215. }
  216. cout<<"Lagi (y/t)? ";cin>>lagi;
  217. }
  218. while(lagi=='y'||lagi=='Y');
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement