Langsung ke konten utama

Pertemuan ke 4 - Introduction to Tree, Binary Tree And Expression Tree - 2101682242 - Mohammad Refardy


Sub Topics­­
Tree & Binary Tree:
-        Tree Concept
-        Binary Tree Concept
-        Type of Binary Tree
-        Property of Binary Tree
-        Representation of Binary Tree
-        Expression Tree Concept
-        Create Expression Tree from Prefix, Postfix and Infix
-        Prefix, Postfix and Infix Traversal

Tree Concept
Pohon adalah kumpulan dari satu atau lebih node.
DEGREE of TREE = 3
DEGREE of C = 2
HEIGHT = 3
PARENT of C = A
CHILDREN of  A = B, C, D
SIBILING of F = G
ANCESTOR of F = A, C
DESCENDANT of C = F, G

Node di bagian atas disebut sebagai root.
Garis yang menghubungkan orang tua dengan anak itu adalah tepi.
Node yang tidak memiliki anak disebut daun.
Node yang memiliki induk yang sama disebut saudara kandung.
Derajat simpul adalah sub-pohon total dari simpul.
Tinggi / Kedalaman adalah tingkat maksimum simpul di pohon.
Jika ada garis yang menghubungkan p ke q, maka p disebut sebagai leluhur q, dan q adalah keturunan dari hlm.

Binary Tree Concept
Binary tree adalah struktur data pohon berakar di mana setiap node memiliki paling banyak dua anak.
Kedua anak itu biasanya dibedakan sebagai anak kiri dan anak kanan.
Simpul yang tidak memiliki anak disebut daun.

Contoh binary tree
dari 9 node, yang di-root
simpul yang berisi 18.




















Daun adalah simpul yang mana
mengandung 9, 12, 10, dan 23.

Type of Binary Tree
Pohon biner SEMPURNA adalah pohon biner dimana setiap tingkat berada pada kedalaman yang sama.
Pohon biner LENGKAP adalah pohon biner di mana setiap tingkat, kecuali yang terakhir, terisi penuh, dan semua simpul sejauh mungkin tertinggal. Pohon biner yang sempurna adalah pohon biner yang lengkap. SKEWED binary tree adalah pohon biner dimana masing-masing node memiliki paling banyak satu anak. Pohon biner BALANCED adalah pohon biner dimana tidak ada daun yang jauh dari akar daripada daun lainnya (skema penyeimbang yang berbeda memungkinkan definisi yang berbeda "jauh lebih jauh").

PERFECT Binary Tree








COMPLETE Binary Tree








SKEWED Binary Tree








Property of Binary Tree
Jumlah maksimum simpul pada tingkat k dari pohon biner adalah 2k.
Dalam beberapa literatur,
tingkat pohon biner
dimulai dengan 1 (root).


Representation of Binary Tree
        Implementation using linked list
struct node {
               int data;
               struct node *left;
               struct node *right;
               struct node *parent;
};
struct node *root = NULL;

Expression Tree Concept
Ingatlah pembahasan kita tentang aplikasi stack tentang notasi aritmatika (sesi 6).
Di sini kita akan membahas notasi aritmatika menggunakan pohon ekspresi.
Prefix                    : *+ab/-cde
Postfix                  : ab+cd-e/*
Infix                      : (a+b)*((c-d)/e)
Kami akan menggunakan struktur ini untuk setiap node di pohon:
struct tnode {
               char chr;
               struct tnode *left;
               struct tnode *right;
};
ini adalah binary tree.

Create Expression Tree from Prefix
Kita dapat membuat pohon ekspresi dari awalan dengan rekursif.
char s [MAXN];
int p = 0;

void f (struct tnode * curr) {
if (is_operator (s [p])) {
p ++; curr-> left = newnode (s [p]);
f (curr-> kiri);
p ++; curr-> right = newnode (s [p]);
f (curr-> kanan);
}?}

Prefix Traversal
Melakukan awalan atau postfix traversal di pohon ekspresi sederhana.
void prefix(struct tnode *curr) {
               printf( “%c “, curr->chr );
               if ( curr->left  != 0 ) prefix(curr->left);
               if ( curr->right != 0 ) prefix(curr->right);
}
Dalam awalan, Anda harus mencetak / memproses sebelum anaknya diproses.

Postfix Traversal
void postfix (struct tnode * curr) {
jika (curr-> left! = 0) postfix (curr-> left);
if (curr-> right! = 0) postfix (curr-> right) ;? printf ("% c", curr-> chr);
}
Dalam postfix, Anda harus mencetak / memproses setelah anaknya diproses.


Infix Traversal
Bagaimana dengan infix? Bisakah kita hanya melakukan seperti kode dibawah ini?
void infix (struct tnode * curr) {
jika (curr-> left! = 0) infix (curr-> left);
printf ("% c", curr-> chr);
if (curr-> right! = 0) infix (curr-> right) ;?}

Komentar

Postingan populer dari blog ini

Pertemuan ke 2 - Linked List Implementation - 2101682242 - Mohammad Refardy

Sub Topics Linked List: - Single Linked List - Polynomial Representation - Circular Single Linked List - Doubly Linked List - Circular Doubly Linked List -Header Linked List  Single Linked List Untuk membuat daftar, pertama kita perlu mendefinisikan struktur simpul untuk daftar. Seharusnya kita ingin membuat daftar bilangan bulat. struct tnode { nilai int; struct tnode * next; }; struct tnode * head = 0; Single Linked List: Insert Untuk menyisipkan nilai baru, pertama kita harus mengalokasikan node baru secara dinamis dan memberikan nilai padanya dan kemudian menghubungkannya dengan linked list yang ada. Seharusnya kita ingin menambahkan simpul baru di depan kepala. struct tnode * node = (struct tnode *) malloc (sizeof (struct tnode)); node-> nilai = x; node-> next = head; kepala = simpul; Single Linked List: Delete Untuk menghapus sebuah nilai, pertama kita harus mencari lokasi node yang menyimpan nilai yang ingin kit...

Pertemuan ke 1 - Pointer, Array and Introduction to Data Structure - 2101682242 - Mohammad Refardy

 Course Description Kursus ini memberi siswa konsep dasar struktur data yang akan sering digunakan dalam praktik rekayasa perangkat lunak dan pemrograman, konsep array, struktur, tumpukan, antrian, grafik, dan trees. Sub Topics Pointer, Array and Introduction to Data Structure •  Array Review •  Pointer Review •  Types of Data Structures •  Abstract Data Type Array • Kumpulan elemen data yang serupa • Elemen data ini memiliki tipe data yang sama (homogen) • Elemen array disimpan di lokasi memori berturut-turut dan direferensikan oleh indeks • Indeks Array dimulai dari nol Array Declaration & Accessing Array • One Dimensional Array • Declaration: • int arr[5]; Syntax: type name[size]; An array of size N have indexes from 0 to N-1. • Accessing:                      - arr[0] = 7; - arr[1] = 2; - arr[2] = 13; - arr[3] = 13; -arr[4] = 13; •...

Pertemuan ke 3 - Linked List Implementation II - 2101682242 - Mohammad Refardy

Sub Topic Stack: -         Stack Concept -         Stack using Array and Linked List -         Infix, Postfix and Prefix Notation -         Evaluation -         Conversion -         Depth First Search -         Queue Concept -         Queue using Array and Linked List -         Priority Queues -         Breadth First Search Stack Concept Stack adalah struktur data penting yang menyimpan unsur-unsurnya secara teratur Analogi: Anda pasti pernah melihat setumpuk piring tempat piring diletakkan di atas yang lain. Bila Anda ingin melepaskan piring, Anda melepaskan piring paling atas terlebih dahulu. Oleh karena ...