Instantly share code, notes, and snippets.
Created
April 8, 2018 13:59
-
Save aldhinya/a388742d64b5180c5a7987f9e55d036e to your computer and use it in GitHub Desktop.
Masih Beta Bro
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <cstdlib> | |
#include <windows.h> | |
using namespace std; | |
struct simpul | |
{ | |
int data; | |
simpul *next; | |
}; | |
simpul *awal; | |
int isEmpty() | |
{ | |
if (awal == NULL) | |
return 1; | |
else return 0; | |
} | |
void tambahDepan(int databaru) | |
{ | |
simpul *baru; | |
baru = new simpul; | |
baru->data = databaru; | |
baru->next = NULL; | |
if (isEmpty() == 1) | |
{ | |
awal = baru; | |
awal->next = NULL; | |
} | |
else | |
{ | |
baru->next = awal; | |
awal = baru; | |
} | |
cout << "> Data "<<databaru<<" berhasil dimasukan!" <<endl; | |
} | |
void tambahTengah (int databaru) | |
{ | |
simpul *baru, *bantu; | |
int apa; | |
if(isEmpty() == 0) | |
{ | |
cout << "\nSetelah data ke berapa yang ingin anda tambah ? = "; | |
cin>>apa; | |
bantu=awal; | |
baru=new simpul; | |
for(int i=1; i<apa; i++) | |
{ | |
if(bantu->next!=NULL) | |
bantu=bantu->next; | |
else break; | |
} | |
cout << "Masukkan data = "; | |
cin>>baru->data; | |
baru->next=bantu->next; | |
bantu->next=baru; | |
bantu=baru; | |
cout << "> Data "<<baru->data<<" berhasil dimasukan!" <<endl; | |
} | |
else cout << "Data kosong!"; | |
} | |
void tambahBelakang (int databaru) | |
{ | |
simpul *baru,*bantu; | |
baru = new simpul; | |
baru->data = databaru; | |
baru->next = NULL; | |
if(isEmpty()==1) | |
{ | |
awal=baru; | |
awal->next = NULL; | |
} | |
else | |
{ | |
bantu=awal; | |
while(bantu->next!=NULL) | |
{ | |
bantu=bantu->next; | |
} | |
bantu->next = baru; | |
} | |
cout << "> Data "<<databaru<<" berhasil dimasukan!" <<endl; | |
} | |
void tampil() | |
{ | |
simpul *bantu; | |
bantu = awal; | |
if (isEmpty() == 0) | |
{ | |
cout << "> Data yang ada dalam list :" <<endl; | |
while (bantu != NULL) | |
{ | |
cout << " " << bantu->data << " "; | |
bantu = bantu->next; | |
} | |
cout << endl; | |
} | |
else cout << "Data kosong!\n"; | |
} | |
void hapusDepan() | |
{ | |
simpul *hapus; | |
int d; | |
if (isEmpty() == 0) | |
{ | |
if (awal->next != NULL) | |
{ | |
hapus = awal; | |
d = hapus->data; | |
awal = awal->next; | |
delete hapus; | |
} | |
else | |
{ | |
d = awal->data; | |
awal = NULL; | |
} | |
cout << d << " sudah terhapus!\n"; | |
} | |
else cout << "Data Kosong\n"; | |
} | |
void hapusBelakang() | |
{ | |
simpul *hapus,*bantu; | |
int d; | |
if (isEmpty()==0) | |
{ | |
if(awal->next != NULL) | |
{ | |
bantu = awal; | |
while(bantu->next->next!=NULL) | |
{ | |
bantu = bantu->next; | |
} | |
hapus = bantu->next; | |
d = hapus->data; | |
bantu->next = NULL; | |
delete hapus; | |
} | |
else | |
{ | |
d = awal->data; | |
awal = NULL; | |
} | |
cout << d << " sudah terhapus!\n"; | |
} | |
else cout << "Data kosong!\n"; | |
} | |
void hapusGenap () | |
{ | |
simpul *hapus, *awal, *akhir=NULL, *bantu=NULL, *last=NULL; | |
bantu = awal; | |
if (isEmpty()==0) | |
{ | |
while(bantu!=NULL) | |
{ | |
if(bantu->data % 2 != 0) | |
{ | |
last = bantu; | |
bantu = bantu->next; | |
} | |
else | |
{ | |
last->next = bantu->next; | |
if(akhir == bantu) | |
{ | |
akhir = last; | |
} | |
bantu = last->next; | |
} | |
} | |
cout << "Semua data angka GENAP berhasil dihapus!\n"; | |
} | |
else cout << "Data Masih kosong\n"; | |
} | |
void hapusGanjil () | |
{ | |
simpul *hapus, *awal, *akhir=NULL, *bantu=NULL, *last=NULL; | |
bantu = awal; | |
if (isEmpty()==0) | |
{ | |
while(bantu!=NULL) | |
{ | |
if(bantu->data % 2 != 0) | |
{ | |
last = bantu; | |
bantu = bantu->next; | |
} | |
else | |
{ | |
last->next = bantu->next; | |
if(akhir == bantu) | |
{ | |
akhir = last; | |
} | |
bantu = last->next; | |
} | |
} | |
cout << "Semua data angka GANJIL berhasil dihapus!\n"; | |
} | |
else cout << "Data Masih kosong\n"; | |
} | |
int main() | |
{ | |
int databaru, menu; | |
char ulang, kembali; | |
do | |
{ | |
cout << "===================" << endl; | |
cout << "Menu Linked List" << endl; | |
cout << "===================" << endl; | |
cout << "1. Tambah Depan" << endl; | |
cout << "2. Tambah Tengah" << endl; | |
cout << "3. Tambah Belakang" << endl; | |
cout << "4. Tampil" << endl; | |
cout << "5. Hapus Depan" << endl; | |
cout << "6. Hapus Belakang" << endl; | |
cout << "7. Hapus Genap" << endl; | |
cout << "8. Hapus Ganjil" << endl; | |
cout << "9. Exit" << endl; | |
cout << "===================" << endl; | |
cout << "Pilih Menu = "; | |
cin >> menu; | |
cout << "===================" << endl; | |
switch(menu) | |
{ | |
case 1: | |
system("cls"); | |
cout << "===================" << endl; | |
cout << "Input Depan" << endl; | |
cout << "===================" << endl; | |
do | |
{ | |
cout << "Input Data = "; | |
cin >> databaru; | |
tambahDepan(databaru); | |
cout << "\nInput Lagi ? (y/t) "; | |
cin >> ulang; | |
cout << endl; | |
} | |
while (ulang=='Y' || ulang=='y'); | |
break; | |
case 2: | |
system("cls"); | |
cout << "===================" << endl; | |
cout << "Input Tengah" << endl; | |
cout << "===================" << endl; | |
do | |
{ | |
tampil(); | |
tambahTengah(databaru); | |
cout << "\nInput Lagi ? (y/t) "; | |
cin >> ulang; | |
cout << endl; | |
} | |
while (ulang=='Y' || ulang=='y'); | |
break; | |
case 3: | |
system("cls"); | |
cout << "===================" << endl; | |
cout << "Input Belakang" << endl; | |
cout << "===================" << endl; | |
do | |
{ | |
cout << "Input Data = "; | |
cin >> databaru; | |
tambahBelakang(databaru); | |
cout << "\nInput Lagi ? (y/t) "; | |
cin >> ulang; | |
cout << endl; | |
} | |
while (ulang=='Y' || ulang=='y'); | |
break; | |
case 4: | |
system("cls"); | |
tampil(); | |
cout << "\nKembali ke Menu ? (y/t) "; | |
cin >> kembali; | |
cout << endl; | |
break; | |
case 5: | |
system("cls"); | |
hapusDepan(); | |
cout << "\nKembali ke Menu ? (y/t) "; | |
cin >> kembali; | |
cout << endl; | |
break; | |
case 6: | |
system("cls"); | |
hapusBelakang(); | |
cout << "\nKembali ke Menu ? (y/t) "; | |
cin >> kembali; | |
cout << endl; | |
break; | |
case 7: | |
system("cls"); | |
hapusGenap(); | |
cout << "\nKembali ke Menu ? (y/t) "; | |
cin >> kembali; | |
cout << endl; | |
break; | |
break; | |
case 8: | |
system("cls"); | |
hapusGanjil(); | |
cout << "\nKembali ke Menu ? (y/t) "; | |
cin >> kembali; | |
cout << endl; | |
break; | |
case 9: | |
system("cls"); | |
break; | |
return EXIT_SUCCESS; | |
break; | |
default: | |
system("cls"); | |
cout << "===================" << endl; | |
cout << "** ERROR = Pilih Nomor yang Benar!"<<endl; | |
main(); | |
break; | |
} | |
system("cls"); | |
} | |
while (ulang=='t' || ulang=='T' || kembali=='Y'|| kembali=='y'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment