Skip to content

Instantly share code, notes, and snippets.

@uluumbch
Last active April 1, 2021 13:13
Show Gist options
  • Save uluumbch/7fc507ecffdc0a8a94b3eead43236831 to your computer and use it in GitHub Desktop.
Save uluumbch/7fc507ecffdc0a8a94b3eead43236831 to your computer and use it in GitHub Desktop.
Contoh Program SLLNC pada cpp/c++ dengan fungsi Hapus pada bagian depan, Hapus belakang,
#include <iostream>
#include <conio.h>
using namespace std;
struct node
{
int data;
node *next;
};
node *head;
node *tail;
node *curr;
node *entry;
node *del;
void inisialisasi()
{
head = NULL;
tail = NULL;
}
void input(int dt)
{
entry = (node *)malloc(sizeof(node));
entry->data = dt;
entry->next = NULL;
if (head == NULL)
{
head = entry;
tail = head;
}
else
{
tail->next = entry;
tail = entry;
}
}
int isEmpty()
{
if (head == NULL)
{
return 1;
}
else
{
return 0;
}
}
void hapusDepan()
{
int simpan;
if (isEmpty() == 1)
{
cout << "\nData masih kosong" << endl;
}
else
{
simpan = head->data;
del = head;
head = head->next;
delete del;
cout << "\ndata yang dihapus adalah " << simpan << endl;
}
}
void hapusBelakang()
{
node *bantu, *hapus;
int simpan;
if (isEmpty() == 0)
{
bantu = head;
if (head != tail)
{
while (bantu->next != tail)
{
bantu = bantu->next;
}
hapus = tail;
tail = bantu;
simpan = hapus->data;
delete hapus;
tail->next = NULL;
}
else
{
simpan = tail->data;
head = tail = NULL;
}
cout << "\ndata yang dihapus adalah " << simpan << endl;
}
else
cout << "Data Masih kosong\n";
}
void clear()
{
node *bantu, *hapus;
bantu = head;
while (bantu != NULL)
{
hapus = bantu;
bantu = bantu->next;
delete hapus;
}
head = NULL;
tail = NULL;
cout << "Semua Data Berhasil dihapus" << endl;
}
void cetak()
{
curr = head;
if (head == NULL)
cout << "\ntidak ada data dalam linked list" << endl;
else
{
cout << "\nData yang ada dalam linked list adalah" << endl;
while (curr != NULL)
{
cout << curr->data << "-";
curr = curr->next;
}
cout << "NULL";
cout << endl;
}
}
void menu()
{
int pilih;
int data;
do
{
cout << "SINGLE LINKED LIST NON CIRCULAR" << endl;
cout << "---------Bachrul Uluum---------" << endl;
cout << "-------------------------------" << endl;
cout << "Menu : " << endl;
cout << "1. Input data" << endl;
cout << "2. Cetak Data" << endl;
cout << "3. Hapus Data Bagian Depan" << endl;
cout << "4. Hapus Data Bagian Belakang" << endl;
cout << "5. Hapus Semua Data " << endl;
cout << "6. Exit" << endl;
cout << "Masukkan pilihan Anda : ";
cin >> pilih;
switch (pilih)
{
case 1:
cout << "\nMasukkan data : ";
cin >> data;
input(data);
break;
case 2:
cetak();
break;
case 3:
hapusDepan();
break;
case 4:
hapusBelakang();
break;
case 5:
int pilih;
cout << "Apakah Anda yakin ingin menghapus semua data yang ada?" << endl;
cout << "Pilih 1 untuk ya | pilih 0 untuk tidak" << endl;
cin >> pilih;
if (pilih == 1)
{
clear();
break;
}
else
{
break;
}
default:
cout << "\nTerimakasih :)" << endl;
}
cout << "Press any key to continue..." << endl;
getch();
system("cls");
} while (pilih < 6);
}
int main()
{
inisialisasi();
menu();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment