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 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 ...

Pertemuan ke 5 - Tree and Binary Tree - 2101682242 - Mohammad Refardy

Sub Topics Tree & Binary Tree: -         Type of Binary Tree -         Property of Binary Tree -         Representation of Binary Tree -         Threaded Binary Tree Concept Binary Tree Concept Contoh binary tree dari 9 node, yang di-root simpul yang berisi 18. leaves adalah simpul yang mana mengandung 9, 12, 10, dan 23   Type of Binary Tree PERFECT binary tree adalah pohon biner di mana setiap tingkat berada pada kedalaman yang sama. COMPLETE binary tree adalah pohon biner di mana setiap tingkat, kecuali mungkin yang terakhir, benar-benar terisi, dan semua node berada paling kiri mungkin. Pohon biner yang sempurna adalah pohon biner lengkap. SKEWED binary tree adalah pohon biner di mana setiap simpul memiliki paling banyak satu anak. BALANCED binary tree adalah pohon biner di mana tidak ada daun ya...