Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <cstdlib>
- using namespace std;
- class Simpul
- {
- public:
- string nama;
- string alamat;
- Simpul *Next;
- public:
- Simpul(string nama, string alamat);
- };
- class Senarai
- {
- public:
- Simpul *pertama;
- public:
- Senarai();
- ~Senarai();
- public:
- int insert_first(string nama, string alamat);
- int insert_last(string nama, string alamat);
- int insert_after(string nama, string alamat, int ke);
- void delete_first();
- void delete_last();
- void delete_after(int ke);
- void tampil();
- };
- int main()
- {
- char ulang;
- Senarai *daftar = new Senarai;
- int pilih;
- do
- {
- system("cls");
- cout<<"+++++++++++++++++++++++++++++++++++LINKED LIST+++++++++++++++++++++++++++++++++"<<endl;
- cout<<"1.Tambah Linked List"<<endl;
- cout<<"2.Hapus Linked List"<<endl;
- cout<<"3.Tampilkan Linked List"<<endl;
- cout<<"4.Exit"<<endl;
- cout<<"Masukan Pilihan Anda : ";cin>>pilih;
- switch(pilih)
- {
- case 1:
- {
- system("cls");
- int pilih;
- string nama,alamat;
- int ke;
- cout<<"Pilih Jenis Insert Yang Anda Ingin kan :"<<endl;
- cout<<"1.Insert First"<<endl;
- cout<<"2.Insert Last"<<endl;
- cout<<"Masukan Pilihan : ";
- cin >>pilih;
- switch(pilih)
- {
- case 1:
- {
- cout<<"INSERT FIRST"<<endl;
- cout<<"masukan nama : ";cin >>nama;
- cout<<"masukan alamat : ";cin >>alamat;
- daftar->insert_first(nama, alamat);
- break;
- }
- case 2:
- {
- cout<<"INSERT LAST"<<endl;
- cout<<"masukan nama : ";cin >>nama;
- cout<<"masukan alamat : ";cin >>alamat;
- daftar->insert_last(nama, alamat);
- break;
- }
- case 3:
- {
- cout<<"INSERT AFTER"<<endl;
- cout<<"masukan nama : ";cin>>nama;
- cout<<"masukan alamat : ";cin >>alamat;
- cout<<"masukan urutan : ";cin >>ke;
- daftar->insert_after(nama, alamat, ke);
- break;
- }
- }
- break;
- }
- case 2:
- {
- system("cls");
- int ke,pilih;
- cout<<"Pilih Jenis Delete Yang Anda Ingin kan :"<<endl;
- cout<<"1.Delete First"<<endl;
- cout<<"2.Delete Last"<<endl;
- cout<<"2.Delete After"<<endl;
- cout<<"Masukan Pilihan : ";
- cin >>pilih;
- switch(pilih)
- {
- case 1:
- {
- cout<<"DELETE FIRST"<<endl;
- daftar->delete_first();
- break;
- }
- case 2:
- {
- cout<<"DELETE LAST"<<endl;
- daftar->delete_last();
- break;
- }
- case 3:
- {
- cout<<"DELETE AFTER"<<endl;
- cout<<"masukan nilai : ";cin >>ke;
- daftar->delete_after(ke);
- break;
- }
- }
- break;
- }
- case 3:
- {
- daftar->tampil();
- break;
- }
- default:
- MessageBox(NULL, "Sampai Jumpa", "Pesan", MB_OK);
- exit(1);
- }
- cout<<"\nIngin kembali kemenu?[y]/[n] :";
- cin >>ulang;
- }while(ulang=='y' || ulang=='Y');
- return 0;
- }
- Simpul::Simpul(string nama, string alamat)
- {
- Simpul::nama = nama;
- Simpul::alamat = alamat;
- Next = NULL;
- }
- int Senarai::insert_first(string nama, string alamat)
- {
- Simpul *baru;
- baru = new Simpul(nama, alamat);
- if(baru != NULL)
- {
- baru->Next = pertama;
- pertama = baru;
- return (1);
- }else
- return (0);
- }
- void Senarai::tampil()
- {
- Simpul *ptr_data = pertama;
- while(ptr_data != NULL)
- {
- cout<<"["<<ptr_data->nama<<" : "<<ptr_data->alamat<<"]--->";
- if(ptr_data->Next == NULL)
- break;
- else
- ptr_data = ptr_data->Next;
- }
- }
- Senarai::Senarai()
- {
- pertama = NULL;
- }
- Senarai::~Senarai()
- {
- Simpul *del_pertama = pertama;
- while(del_pertama != NULL)
- {
- del_pertama = pertama;
- pertama = pertama->Next;
- delete del_pertama;
- }
- }
- Senarai::insert_last(string nama, string alamat)
- {
- Simpul *last;
- Simpul *pendahulu = pertama;
- last = new Simpul(nama, alamat);
- while(pendahulu->Next != NULL)
- {
- pendahulu = pendahulu->Next;
- }
- if(pertama)
- {
- pendahulu->Next = last;
- return (1);
- }else{
- return (0);
- }
- }
- void Senarai::delete_first()
- {
- Simpul *delete_first;
- delete_first = pertama;
- pertama = pertama->Next;
- delete_first->Next = NULL;
- if(delete_first)
- {
- delete delete_first;
- }
- }
- int Senarai::insert_after(string nama, string alamat, int ke)
- {
- Simpul *p = pertama;
- Simpul *q = new Simpul(nama, alamat);
- if(pertama != NULL)
- {
- int i = 1;
- while((p != NULL) && (i<ke)){
- p = p->Next;
- i++;
- }
- if(p!= NULL)
- {
- q->Next = p->Next;
- p->Next = q;
- return (1);
- }
- else
- return (0);
- }
- return (0);
- }
- void Senarai::delete_after(int ke)
- {
- Simpul *p = pertama;
- if(p!= NULL)
- {
- int i=1;
- while(p!=NULL && i<ke)
- {
- p = p->Next;
- i++;
- }
- if(p != NULL)
- {
- Simpul *q = p->Next;
- p->Next = q->Next;
- q = NULL;
- delete q;
- }
- }
- }
- void Senarai::delete_last()
- {
- Simpul *p = pertama;
- Simpul *q;
- q = p;
- p = q->Next;
- while(p->Next != NULL)
- {
- q = p;
- p = q->Next;
- }
- q->Next = NULL;
- delete p;
- }
Add Comment
Please, Sign In to add comment