Skip to content

Instantly share code, notes, and snippets.

@aldhinya
Last active April 25, 2018 15:11
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/b5eb7f1d208b8b9b8c671c32ce9badc0 to your computer and use it in GitHub Desktop.
Save aldhinya/b5eb7f1d208b8b9b8c671c32ce9badc0 to your computer and use it in GitHub Desktop.
Tugas Linked List Bu Tutuk
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
struct simpul
{
int data;
simpul *next;
};
simpul *awal=NULL, *akhir=NULL, *last=NULL, *bantu=NULL, *baru=NULL;
void inputData()
{
int a, b;
cout << "\nInputkan Awal = ";
cin >> a;
cout << "Inputkan Akhir = ";
cin >> b;
while(a<=b)
{
baru = new simpul;
baru->data = a;
a++;
baru->next = NULL;
if(akhir == NULL)
{
awal = baru;
}
else
{
akhir->next = baru;
}
akhir = baru;
}
}
void tampilData()
{
bantu = new simpul;
bantu = awal;
cout << "=======================" << endl;
cout << "Isi Data = ";
if(bantu != NULL)
{
while(bantu != NULL)
{
cout << bantu->data << " ";
bantu = bantu->next;
}
}
else
{
cout << "Data Kosong!";
}
}
void hapusGanjil()
{
bantu = new simpul;
last = NULL;
bantu = awal;
if(awal == NULL)
{
cout << "Data Kosong!" << endl;
}
else
{
while(bantu != NULL)
{
if(bantu->data % 3 != 0)
{
last = bantu;
bantu = bantu->next;
}
else
{
last->next = bantu->next;
if(akhir == bantu)
{
akhir = last;
}
bantu = last->next;
}
}
cout << "\n> PESAN : Bilangan Ganjil Kelipatan 3 Berhasil dihapus!" << endl;
cout << "\n> Tekan enter untuk lanjut" << endl;
getch();
}
}
int main()
{
int menu;
tampilData();
cout << endl;
cout << "=======================" << endl;
cout << "Pilih Menu" << endl;
cout << "=======================" << endl;
cout << "1. Input Data" << endl;
cout << "2. Hapus Ganjil (Kelipatan 3)" << endl;
cout << "3. Exit" << endl;
cout << "> Input Menu = ";
cin >> menu;
switch(menu)
{
case 1:
{
inputData();
main();
}
case 2:
{
hapusGanjil();
main();
}
case 3:
{
}
default:
{
cout << "Input yang Benar!";
}
}
}
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
void ShowData();
void InputData();
void RemoveGenap();
struct jaring
{
int angka;
jaring *next;
};
jaring *awal=NULL, *akhir=NULL, *last=NULL, *bantu=NULL, *baru=NULL;
int main()
{
int a;
cout << "----------------------------" << endl;
ShowData();
cout << endl;
cout << "Data Awal : ";
awal == NULL ? (cout << "Belom ada data" << endl) : (cout << awal->angka << endl);
cout << "Data Akhir: ";
akhir == NULL ? (cout << "Belom ada data" << endl) : (cout << akhir->angka << endl);
cout << "----------------------------" << endl;
cout << "1. Input Data Terurut" << endl;
cout << "2. Remove Genap" << endl;
cout << "3. Exit" << endl;
cout << "Choose>";
cin >> a;
switch(a)
{
case 1:
{
InputData();
main();
}
case 2:
{
RemoveGenap();
main();
}
case 3:
{
exit(0);
}
default:
{
cout << "???";
getch();
}
}
}
void InputData()
{
int a, b;
cout << "Inputkan batas angka awal : ";
cin >> a;
cout << "Inputkan batas angka akhir: ";
cin >> b;
while(a<=b)
{
baru = new jaring;
baru->angka = a;
a++;
baru->next = NULL;
if(akhir == NULL)
{
awal = baru;
}
else
{
akhir->next = baru;
}
akhir = baru;
}
}
void ShowData()
{
bantu = new jaring;
bantu = awal;
if(bantu != NULL)
{
while(bantu != NULL)
{
cout << bantu->angka << " ";
bantu = bantu->next;
}
}
else
{
cout << "Belum Ada Data...";
}
}
void RemoveGenap()
{
bantu = new jaring;
last = NULL;
bantu = awal;
if(awal == NULL)
{
cout << "Data lom ada mz..." << endl;
getch();
}
else
{
while(bantu != NULL)
{
if(bantu->angka % 2 != 0)
{
last = bantu;
bantu = bantu->next;
//cout << "LL Berganti.." << endl;
}
else
{
last->next = bantu->next;
if(akhir == bantu)
{
akhir = last;
}
bantu = last->next;
//cout << "Genap Terhapus" << endl;
}
}
cout << "Mission Complete" << endl;
getch();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment