Home > Ren's Free Time > Single Linked List dengan C++

Single Linked List dengan C++

December 12, 2010 Leave a comment Go to comments

Salah satu jenis struktur data yang paling dasar adalah Linked List / Senarai Berantai. Linked List mempunyai beberapa variasi, dalam posting kali ini saya akan menulist Single Linked List. Single Linked List adalah terdiri dari elemen-elemen individu, dimana masing-masing dihubungkan dengan pointer   tunggal.  Masing-masing  elemen terdiri dari dua bagian, yaitu sebuah data dan sebuah pointer yang disebut dengan pointer next. Dengan menggunakan struktur two-member seperti ini, linked list dibentuk dengan cara menunjuk pointer next suatu elemen ke elemen yang mengikutinya.
Pointer next  pada elemen terakhir merupakan NULL, yang menunjukkan akhir dari suatu list.  Elemen pada awal suatu list disebut head, dan elemen terakhir dari suatu list disebut tail. ntuk mengakses elemen dalam linked list, dimulai dari head dan menggunakan pointer next dari elemen selanjutnya untuk berpindah dari elemen ke elemen berikutnya sampai elemen yang diminta dicapai.Dengan single linke list, list dapat dilintasi hanya satu   arah   dari   head   ke   tail   karena   masing-masing   elemen   tidak   terdapat   link   dengan elemen sebelumnya. Sehingga, apabila kita mulai dari head dan berpindah ke beberapa elemen dan berharap dapat mengakses element sebelumnya, kita harus mulai dari head. Secara   konseptual,   linked   list   merupakan   deretan   elemen   yang   berdampingan. Akan tetapi, karena elemen-elemen tersebut dialokasikan secara dinamis bahwa  tapi kenyataannya,   linked   list   akan   terpencar- pencar   di   memory, pointer next menjamin bahwa element selanjutnya dapat diakses.

Single Linked List / Senarai Berantai

Berikut ini implementasi sederhana Single Linked List dalam C++. Sedangkan tool yang saya gunakan adalah CodeBlock 8.02

#include <iostream>

using namespace std;
class LinkList{
private:
struct node{
int data;
node *next;
};
node *head;

public:
LinkList();
void insertData(int num);
void deleteData (int num);
void displayData();
int count();
~LinkList();

};
LinkList::LinkList()
{
head=NULL;
}
void LinkList::insertData(int num)
{
node *temp;
node *t;
if( head == NULL)
{
head = new node;
head->data = num;
head->next = NULL;
}
else
{
temp = head;
while(temp->next != NULL)
{
temp = temp->next;
}
t = new node;
t->data = num;
t->next = NULL;
temp->next = t;
}
}
void LinkList::deleteData(int num)
{
node *q, *r;
q= head;
if(q->data == num)
{
head = q->next;
delete q;
return;
}
r = q;
while(q!= NULL)
{
if(q->data == num )
{
r->next = q->next;
delete q;
return;
}
r = q;
q = q->next;
}
cout << " Nilai " << num << "tidak ditemukan";
}
void LinkList::displayData()
{
node *q;
for(q=head; q != NULL; q=q->next)
{
cout<<q->data<<endl;
}
}

int LinkList::count()
{

node *q;
int c=0;
for( q=head ; q != NULL ; q = q->next )
c++;
return c;
}

LinkList::~LinkList()
{
node *q;
if(head == NULL)
{
return;
}
while(head != NULL)
{
q = head->next;
delete head;
head = q;
}

}

int main()
{ LinkList list;
int temp;
int pilihan;
while(1)
{
cout<<"Link List Single"<<endl;
cout<<"1.Insert / Creation"<<endl;
cout<<"2.Delete Element"<<endl;
cout<<"3.View Element"<<endl;
cout<<"4.Count Element"<<endl;
cout<<"5.Exit"<<endl;

cout<<"Enter your choice:";
cin>>pilihan;
switch(pilihan)
{  cout<<endl;
case 1:
cout<<"Insert Element Data";
cin>>temp;
list.insertData(temp);
break;
case 2:
cout<<"Delete Element :";
cin>>temp;
list.deleteData(temp);
break;
case 3:
list.displayData();
break;
case 4:
cout<<"Number Total Element at List : "<<list.count()<<endl;
break;
case 5:
return 0;
}

}
}


Semoga Bermanfaat😀
Download Code
Referensi : dari berbagai sumber

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: