Struktur Data_TUGAS 2 DAN 3
Menampilkan node baru TREE (Struktur Data) dengan C/C++
Struktur pada tree (pohon) tidak linear seperti pada struktur linked list,
stack, dan queue. Setiap node pada tree mempunyai tingkatan, yaitu
orang tua (parent) dan anak (child). Struktur ini sebenarnya merupakan
bentuk khusus dari struktur tree yang lebih umum, setiap orang tua hanya
memiliki dua anak sehingga disebut pohon biner (binary tree), yaitu
anak kiri dan anak kanan. Untuk lebih jelasnya, dibawah ini akan
diuraikan istilah-istilah umum dalam tree.
- Predecessor : node yang berada di atas node tertentu
- Successor : node yang dibawah node tertentu
- Ancestor : seluruh node yang terletak sebelum node tertentu dan terletak sesudah pada jalur yang sama
- Descendant : seluruh node yang terletak sesudah node tertentu dan terletak sesudah pada jalur yang sama
- Parent : predecessor satu level diatas suatu node
- Child : successor satu level dibawah suatu node
- Sibling : node-node yang memiliki parent yang sama dengan suatu node
- Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua karakteristik dari tree tersebut
- Size : banyaknya node dalam suatu tree
- Height : banyaknya tingkatan/level dalam suatu tree
- Root : satu-satunya node khusus dalam tree yang tidak mempunyai predecessor
- Leaf : node-node dalam tree yang tidak memiliki successor
- Degree : banyaknya child yang dimiliki suatu node
TUGAS :
Buatlah program untuk menampilkan node baru ke dalam pohon dengan menggunakan prosedur preorder, inorder, dan postorder.
Sehingga akan didapatkan hasil :
Tampilan secara PreOrder : R A S I T E
Tampilan secara InOrder : I S T A R E
Tampilan secara PostOrder : I T S A E R
#include<stdio.h>
typedef struct node
{
char s152;
node *kiri;
node *kanan;
};
node *root=NULL;
void Tambahpang(node **root, char u152)
{
if((*root)==NULL){
node *baru;
baru= new node;
baru->s152 = u152;
baru->kiri = NULL;
baru->kanan = NULL;
(*root)=baru; }
}
void preorder(node *root)
{
if(root !=NULL) {
printf("%c, ", root->s152);
preorder(root->kiri);
preorder(root->kanan); }
}
void inorder(node *root)
{
if(root !=NULL) {
inorder(root->kiri);
printf("%c, ", root->s152);
inorder(root->kanan); }
}
void postorder(node *root)
{
if(root !=NULL) {
postorder(root->kiri);
postorder(root->kanan);
printf("%c, ", root->s152); }
}
main()
{
char g152;
printf("\t *Titik Dian Darmayanti - 172355201061*\n");
printf("###################################################\n");
Tambahpang(&root,g152='R');
Tambahpang(&root->kiri,g152='A');
Tambahpang(&root->kiri->kiri,g152='S');
Tambahpang(&root->kiri->kiri->kiri,g152='I');
Tambahpang(&root->kiri->kiri->kanan,g152='T');
Tambahpang(&root->kanan,g152='E');
printf("Tampilan secara PreOrder : ");
preorder(root);
printf("\nTampilan secara InOrder : ");
inorder(root);
printf("\nTampilan secara PostOrder : ");
postorder(root);
printf("\n###################################################\n");
}
Output Progam Menampilkan node baru TREE/pohon dengan menggunakan prosedur preorder, inorder, dan postorder C/C++
Komentar
Posting Komentar