Tugas 4_ Binary Tree 1144112

video




Tree adalah sebuah struktur linier, biasanya digunakan untuk menggambarkan hubungan yang bersifat hirarkis antara elemen-elemen yang ada. Ada beberapa istilah dalam tree ini, yang mana masing-masing istilah  mempunyai arti dalam kaitannya dengan hirarki antar elemen dalam tree tersebut, seperti sibling, descendant dsb.
Dalam ilmu komputer, tree adalah sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari serangkaian node (simpul) yang saling berhubungan. Node-node tersebut dihubungkan oleh sebuah vektor. Setiap node dapat memiliki 0 atau lebih node anak (child). Sebuah node yang memiliki node anak disebut node induk (parent). Sebuah node anak hanya memiliki satu node induk. Sesuai konvensi ilmu komputer, tree bertumbuh ke bawah, tidak seperti pohon di dunia nyata yang tumbuh ke atas. Dengan demikian node anak akan digambarkan berada di bawah node induknya.Selain itu, pembuatan tree menggunakan linked list sangat efisien bagi pemrosesannya

Berikut contoh source kode untuk binary tree
  #include <stdlib.h>
    #include <stdio.h>
    #define info(p) (p)->info
    #define left(p) (p)->left
    #define right(p) (p)->right
    typedef struct treenode *data;
    typedef struct treenode{
     int info;
     data right;
     data left;
     }node;
     data root;
    void insert(data *tree, int elem){
     //Kamus
     data item;
     //Algoritma
     item = (data) malloc (sizeof(node));
     left (item) = right(item) = NULL;
     info (item) = elem;
      if(!(*tree)){
      *tree = item;
      return;
     }
     if(info(item) < info(*tree))
      insert(&left(*tree),elem);
     else if(info(item) > info(*tree))
      insert(&right(*tree), elem);
    }
    //Buat prosedur inorder, preorder, postorder, main program
    void inorder(data *tree){
     if(*tree != NULL){
      inorder(&left(*tree));
      printf(" %d ", info(*tree));
      inorder(&right(*tree));
     }
    }
    void preorder(data *tree){
     if(*tree != NULL){
      printf(" %d ", info(*tree));
      preorder(&left(*tree));
      preorder(&right(*tree));
     }
    }           
    void postorder(data *tree){
     if(*tree != NULL){
      postorder(&left(*tree));
      postorder(&right(*tree));
      printf(" %d ", info(*tree));
       }
    }
    //Program Utama
    int main(){
     insert (&root,2);
     insert (&root,3);
     insert (&root,1);
     insert (&root,4);
      printf("Inorder  : ");
     inorder(&root);
     printf("\n");
     printf("Preorder : ");
     preorder(&root);
     printf("\n");
     printf("Postorder: ");
     postorder(&root);
     printf("\n");
     return 0;
    }
Link : https://github.com/Silvianatita/Binary-tree

Tugas 2 Single linked list_1144112


video




Linked List adalah salah satu bentuk struktur data, berisi kumpulan data
(node) yang tersusun secara sekuensial, saling sambungmenyambung,
dinamis dan terbatas.
- Linked List sering disebut juga Senarai Berantai
- Linked List saling terhubung dengan bantuan variabel pointer
- Masing-masing data dalam Linked List disebut dengan node (simpul) yang
menempati alokasi memori secara dinamis dan biasanya berupa struct
yang terdiri dari beberapa field.

Single Linked List adalah sebuah LINKED LIST yang menggunakan sebuah variabel pointer saja untuk menyimpan banyak data dengan metode LINKED LIST, suatu daftar isi yang saling berhubungan.
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
class node {
   public:
   class node *next;
   int data;

}; 
class stack : public node {
   node *head;
   int tos;
public:
   stack() {
   tos=-1;
}
void push(int x) {
 if (tos < 0 ){
 head =new node;
 head->next=NULL;
 head->data=x;
 tos ++;
}
 else {
 node *temp,*temp1;
 temp=head;
 if(tos >= 4) {
 cout <<"stack over flow";
 return;
}
 tos++;
 while(temp->next != NULL)
 temp=temp->next;
 temp1=new node;
 temp->next=temp1;
 temp1->next=NULL;
 temp1->data=x;
}
}
void display() {
    node *temp;
    temp=head;
if (tos < 0) {
    cout <<" stack under flow";
    return;
}
while(temp != NULL)
{
    cout <<temp->data<< " ";
    temp=temp->next;
}
}
void pop() {
 node *temp;
 temp=head;
 if( tos < 0 ) {
 cout <<"stack under flow";
 return;
}
 tos--;
while(temp->next->next!=NULL) {
 temp=temp->next;
}
 temp->next=NULL;
}
};
int main() {
 stack s1;
 int ch;
while(1) {
 cout <<"\n1.Tambah\n2.Ambil\n3.Tampilkan\n4.Keluar\n  Masukan Pilihan Anda : ";
 cin >> ch;
switch(ch) {
 case 1: cout <<"\n Masukan Elemen : ";
 cin >> ch;
 s1.push(ch);break;
 case 2: s1.pop();break;
 case 3: s1.display(); break;
 case 4: exit(0);
}
}
return (0); }
link :  https://github.com/Silvianatita/Single-link-list

Tugas 1 Array_1144112


  
video




Array adalah kumpulan data bertipe sama yang menggunakan nama sama.
Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam kurung siku.
Pada program ini hanya menginputkan sebanyak 8 nilai saja, jika ingin lebih atau kurang dari itu, edit saja angka 7 pada bagian perulangannya, dan jangan lupa pada bagian arraynya juga dirubah.

#include <iostream>
using namespace std;
int main()
{
    int a[8];
    int jumlah;
    //memasukkan data
    for (int i=0;i<=7;i++){
        cout<<"masukkan nilai ke "<<i+1<<": ";
        cin>>a[i];
    }
    //penjumlahan
    jumlah=0;
    for (int i=0;i<=7;i++){
        jumlah=jumlah+a[i];
    }
    cout<<"jumlah seluruhnya: "<<jumlah;
    return 0;
}

 Link : https://github.com/Silvianatita/Array