Bagosep

hapus bilangan ganjil dengan linkedlist

Apr 26th, 2017
99
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. struct node{
  8.     int nilai;
  9.     node *next;
  10. };
  11.  
  12. node *depan, *belakang, *baru, *bantu, *posisi, *hapus;
  13.  int panjang;
  14.  
  15. void create(){
  16.     depan=NULL;
  17.     belakang=NULL;
  18.     cout<<"Masukan panjangg = ";cin>>panjang;
  19.     for(int kounter=1; kounter<=panjang; kounter++){
  20.         baru = new node;
  21.         baru->nilai = kounter;
  22.         baru->next = NULL;
  23.  
  24.         if(depan==NULL){
  25.             depan = baru;
  26.             belakang = baru;
  27.         }
  28.         else{
  29.             belakang->next = baru;
  30.             belakang = baru;
  31.         }
  32.     }
  33. }
  34.  
  35. void hapusGanjil(){
  36.     posisi = depan;
  37.     while(posisi->nilai!=panjang){
  38.        bantu = posisi;
  39.  
  40.        if(posisi->nilai%2==1 && posisi==depan){
  41.             depan = posisi->next;
  42.         }
  43.  
  44.        posisi = posisi->next;
  45.  
  46.         if(posisi->nilai%2==1){
  47.             bantu->next = posisi->next;
  48.         }
  49.         if(posisi==belakang){
  50.             break;
  51.         }
  52.  
  53.     }
  54. }
  55.  
  56.  
  57. void tampil(){
  58.     posisi = depan;
  59.     while(posisi != NULL){
  60.         cout<<posisi->nilai<<"\t";
  61.         posisi=posisi->next;
  62.     }
  63. }
  64.  
  65. int main()
  66. {
  67.     int pilihan;
  68.     char lagi;
  69.     do{
  70.     system("CLS");
  71.     //tampil();
  72.     cout<<"Menu"<<endl;
  73.     cout<<"1. Hapus Ganjil "<<endl;
  74.     cout<<"2. Tampil "<<endl;
  75.     cout<<"Masukan Pilihan Anda = ";
  76.     cin>>pilihan;
  77.    // system("CLS");
  78.  
  79.     switch(pilihan){
  80.         case 1:
  81.             create();
  82.             hapusGanjil();
  83.             break;
  84.         case 2:
  85.              tampil();
  86.              break;
  87.         default:
  88.             break;
  89.     }
  90.     cout<<"\nAnda Ingin Mengulang ? ";
  91.     cin>>lagi;
  92.     }while(lagi == 'y');
  93. }
RAW Paste Data