Data Structure 3 Maret 2020
Pada pembelajaran tanggal 3 Maret 2020, saya belajar mengenai Linked List terkhususnya Single Linked List. Adapun di dalam Linked List terdapat beberapa fungsi seperti push dan pop. Push terbagi menjadi 3 yaitu :
void pushDepan(int v)
{
struct data *curr;
curr = (struct data *) malloc(sizeof(struct data) );
curr->value = v;
curr->next = NULL;
if (head == NULL){
head = tail = curr;
}
else{
curr->next = head;
head = curr;
}
}
void popBelakang()
{
if (head == NULL)
return;
struct data *curr = head;
if (head == tail)
head = tail = NULL;
else
{
while (curr->next != tail)
{
curr = curr->next;
}
free(tail);
tail = curr;
tail->next = NULL;
}
}
- Push Depan(Push Head)
void pushDepan(int v)
{
struct data *curr;
curr = (struct data *) malloc(sizeof(struct data) );
curr->value = v;
curr->next = NULL;
if (head == NULL){
head = tail = curr;
}
else{
curr->next = head;
head = curr;
}
}
- Push Belakang(Push Tail)
Push belakang memiliki fungsi yaitu menambahkan data dari belakang, adapun contohnya sebagai berikut
void pushBelakang(int v)
{
struct data *curr;
curr = (struct data *) malloc(sizeof(struct data) );
curr->value = v;
curr->next = NULL;
if (head == NULL){
head = tail = curr;
}
else{
tail->next = curr;
tail = curr;
}
}
- Push Tengah(Push Mid)
Push tengah memiliki fungsi yaitu menambahkan data dari tengah, adapun contohnya sebagai berikut
void pushTengah(int v)
{
struct data *curr;
curr = (struct data *) malloc(sizeof(struct data) );
curr->value = v;
curr->next = NULL;
if (head == NULL){
head = tail = curr;
}
else{
struct data *temp = head;
while (temp->next->value < v)
{
temp = temp->next;
}
curr->next = temp->next;
temp->next = curr;
}
}
Kemudian pop juga terbagi menjadi 3 bagian, yaitu sebagai berikut :
- Pop Depan(Pop Head)
Pop depan memiliki fungsi untuk menghapus data dari depan, adapun contohnya sebagai berikut
void popDepan()
{
if (head == NULL)
return;
struct data *curr = head;
if (head == tail)
head = tail = NULL;
else
head = head->next;
free(curr);
}
- Pop Belakang (Pop Tail)
Pop belakang memiliki fungsi untuk menghapus data dari belakang, adapun contohnya sebagai berikut
void popBelakang()
{
if (head == NULL)
return;
struct data *curr = head;
if (head == tail)
head = tail = NULL;
else
{
while (curr->next != tail)
{
curr = curr->next;
}
free(tail);
tail = curr;
tail->next = NULL;
}
}
- Pop Tengah(Pop Mid)
Pop tengah memiliki fungsi untuk menghapus data dari tengah, adapun contohnya sebagai berikut
void popTengah(){
struct data *tail = head;
while (tail->next != temp)
{
tail = tail->next;
}
tail->next = temp->next;
free(temp);
}
Komentar
Posting Komentar