Skip to content

Instantly share code, notes, and snippets.

@aldhinya
Created April 8, 2018 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aldhinya/a388742d64b5180c5a7987f9e55d036e to your computer and use it in GitHub Desktop.
Save aldhinya/a388742d64b5180c5a7987f9e55d036e to your computer and use it in GitHub Desktop.
Masih Beta Bro
#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