Advertisement
Fakhru

struct latest

Jul 23rd, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void tambahdepan();
  6. void tambahbelakang();
  7. void tambahtengah();
  8. void buangdepan();
  9. void buangbelakang();
  10. void buangtengah();
  11. void cari();
  12. void papar();
  13.  
  14. struct LL {
  15.  
  16. int data;
  17. LL * next;
  18. } ;
  19.  
  20. struct LL * head;
  21. int nom;
  22. bool jumpa;
  23.  
  24. int main(void){
  25. head = NULL;
  26. int pilihan;
  27.  
  28. while(true){
  29. cout << endl <<"Pilih operasi anda :" <<endl;
  30. cout << "1. Tambah data di depan" << endl;
  31. cout << "2. Tambah data di belakang" << endl;
  32. cout << "3. Tambah data di tengah" << endl;
  33. cout << "4. Buang data di depan" << endl;
  34. cout << "5. Buang data di belakang" << endl;
  35. cout << "6. Buang data di tengah" << endl;
  36. cout << "7. Cari data" << endl;
  37. cout << "8. Papar data" << endl;
  38. cout << "9. Keluar" << endl;
  39. cout << "Pilihan Anda: ";
  40. cin >> pilihan;
  41.  
  42. switch(pilihan){
  43. case 1 : tambahdepan(); papar(); break;
  44. case 2 : tambahbelakang(); papar(); break;
  45. case 3 : tambahtengah(); break;
  46. case 4 : buangdepan(); break;
  47. case 5 : buangbelakang(); break;
  48. case 6 : buangtengah(); break;
  49. case 7 : cari(); break;
  50. case 8 : papar(); break;
  51. case 9 : return 0; break;
  52. default: cout << "Wrong Selection"; break;
  53. }
  54.  
  55.  
  56. }
  57. system("pause");
  58. return 0;
  59. }
  60.  
  61.  
  62. void tambahdepan(){
  63.  
  64. LL*objek=new LL;
  65. cout << endl << "Masukkan No: ";
  66. cin>>objek->data;
  67.  
  68. if(head == NULL){
  69. objek->next=NULL;
  70. }else {
  71. objek -> next = head;
  72. }
  73. head=objek;
  74.  
  75.  
  76. }
  77.  
  78. void tambahbelakang() {
  79. LL*samir=new LL;
  80. cout << "\nMasukkan nilai :";
  81. cin >> samir -> data;
  82. samir -> next = NULL;
  83.  
  84. if ( head==NULL ){ // true utk 1st node shj
  85. head = samir;
  86. }
  87. else { // true utk 2nd node n the rest
  88. LL * tmp = head;
  89.  
  90. while (tmp -> next !=NULL) {
  91. tmp = tmp -> next;
  92. }
  93.  
  94. tmp -> next = samir;
  95. }
  96. }
  97. void tambahtengah(){
  98. int tgh;
  99. papar();
  100.  
  101. cout << "Tambah selepas data berapa : ";
  102. cin >> tgh;
  103.  
  104. // assume semua data adalah unik
  105. LL * tmp = head;
  106. while(tmp != NULL){
  107. if(tgh == tmp->data){
  108. break;
  109. }
  110. else {
  111. tmp = tmp->next;
  112. }
  113. }
  114.  
  115. LL*samir=new LL;
  116. cout << "\nMasukkan nilai :";
  117. cin >> samir -> data;
  118. samir -> next = tmp -> next;
  119. tmp -> next = samir;
  120. papar();
  121. }
  122. void buangdepan(){
  123. head = head->next;
  124. papar();
  125. }
  126. void buangbelakang(){
  127. }
  128. void buangtengah(){
  129. }
  130. void cari(){
  131. jumpa = false;
  132.  
  133. cout << "\nMasukkan data yang dicari : ";
  134. cin >> nom ;
  135.  
  136. LL * tmp = head;
  137.  
  138. while (tmp !=NULL){
  139. if (nom == tmp -> data){
  140. jumpa = true;
  141. break;
  142. }
  143. else
  144. tmp = tmp -> next;
  145. }
  146.  
  147. if (!jumpa)
  148. cout << "\nDATA XDOK !! SARANGHAE !!";
  149. else
  150. cout << "\nDATA ADO !!";
  151.  
  152. }
  153.  
  154. void papar(){
  155. LL*tmp=head;
  156. cout<<"HEAD->";
  157. while(tmp!=NULL){
  158. cout<<tmp->data<<"->";
  159. tmp=tmp->next;
  160. }
  161. cout<<"NULL";
  162. delete tmp;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement