Data Structures Summary
Dear reader, due to the recent outbreak of the COVID-19 pandemic, we've all been forced to study at home. It is a challenge to keep track of the subject matter, so in this blog, I will be putting all my summary about what I've learned in this half semester from Data Structures. I've been thinking about the final project of making a pacman game using linked list... I can make a pacman game with 2d arrays, but a Linked List as a map ? It still leaves me in confusion ... For now I'll be studying more too be closer on approaching the final project
Linked List II, a linear data structure where each element is a separate object.
Materials :
- Circular Linked List
- Circular Single Linked List
- Doubly Linked List
- Circular Doubly Linked List
Dear reader, due to the recent outbreak of the COVID-19 pandemic, we've all been forced to study at home. It is a challenge to keep track of the subject matter, so in this blog, I will be putting all my summary about what I've learned in this half semester from Data Structures. I've been thinking about the final project of making a pacman game using linked list... I can make a pacman game with 2d arrays, but a Linked List as a map ? It still leaves me in confusion ... For now I'll be studying more too be closer on approaching the final project
Linked List II, a linear data structure where each element is a separate object.
Materials :
- Circular Linked List
- Circular Single Linked List
- Doubly Linked List
- Circular Doubly Linked List
Circular Linked List
Circular Single Linked List is a variation of linked list which its first element
points to the last element and the last element points to the first element.
In this list, there is no NULL values stored.
points to the last element and the last element points to the first element.
In this list, there is no NULL values stored.
Circular Single Linked List
In a circular Singly linked list, the last node of the list refers to the first node of the list.
Doubly Linked List
Doubly Linked List is a linked list of data which have two links each node, one that refer to the previous data and one that refer to the next data.
Doubly Linked List is a linked list of data which have two links each node, one that refer to the previous data and one that refer to the next data.
Code Example :
struct Node {
int data;
struct Node* next;
struct Node* prev;
};
Circular Doubly Linked List
Circular Doubly Linked List are linked list in which two consecutive elements are linked or connected by previous and next pointer and the last node refers to first node by next pointer and also the first node refers to last node by previous pointer.
Linked List, is a concept which is I'd say pretty understandable, but when it comes to coding it, we all know, coding something for the first time would be a challenge. Luckily, at Binus Data Structures big class, they decided to teach some code logic, and this is what i've learned from it.
- Struct
struct Data
{
int value;
struct Data *next,*prev;
}*head,*curr,*tail;
- Push tail (insert sebuah data di paling belakang)
void push(int a)
{
curr = (struct Data*)malloc(sizeof(struct Data));
curr->value = a;
if(head==NULL){
head = tail = curr;
}
else{
tail->next = curr;
curr->prev = tail;
tail = curr;
}
head->prev = tail->next = NULL;
}
- Print isi dalam linked list
void cetak()
{
curr = head;
while(curr!=NULL){
printf("%d\n",curr->value);
curr = curr->next;
}
}
- PopTail(Delete data paling belakang)
void pop()
{
curr = head;
if(tail == head){
free(curr);
tail = head = curr = NULL;
}
else
{
while(curr->next!=tail){
curr = curr->next;
}
free(tail);
tail = curr;
tail->next = NULL;
}
}
Those are the codes i learned from Big Class of Data Structures
GSLC KE-2 Data Structure, Pertemuan ke-6
Materi :
- Hashing and Hash Tables
- Tree and Binary Tree
Hashing and Hash Tables
Hashing is a method used to store data so it can be added, search and delete in a short time.
There are many ways of hashing.
Hash Functions :
- Mid-square : Squaring the value of key, taking the middle part.
- Division : (key) mod (value).
- Folding : Done by taking parts of a number, adding it, and ignoring some digits of it.
- Digit Extraction : Extract some digit from a number. for example, given x=219382. We want to extract some of it's digit and make it a hash key, so we extract 1st digit and 4th digit. From that the number we get is 23.
- Rotating Hash : Do any of the method above, then rotate the digit. For example, given that x=23354. If we rotate x, it would be 45332.
In some case, Collision will happen... What is a collision ? Collision is when several data have the same hash-key. What can we do to handle it ?
- Linear Probing : Search the next empty slot and put the data there.
- Chaining : Put the string n a slot as a chained list (Linked List).
Trees & Binary Tree
Tree ? What is it ? A tree is a non-linear data structure that represents the relationships ammong data objects.
Root = Node at the top (A)
Leaf = Nodes that do not have Children(E,F,G)
Degree = Total sub tree of a node
Height/Depth = maximum degree of nodes in a tree
Meanwhile, Binary Tree is a rooted tree data structure which each node has at most(max) two children.
Type of Binary Tree
- Perfect binary tree, which every level of the binary tree are at the same depth
- Complete binary tree, a binary tree in which every level except the last(optional), is completely filled. If a binary tree is perfect, it is also a complete binary tree.
- Skewed binary tree, a binary tree which each node has at most one children.
- Balanced binary tree, a binary tree which has no leaf far from the root.
In code, Binary tree can be first initialized by
Comments
Post a Comment