Postingan

Menampilkan postingan dengan label STRUKDAT

STACK STL C++

 #include <iostream> #include <string> #include <stack> using namespace std; int main() {     stack<int> stack;     stack.push(21);     stack.push(22);     stack.push(24);     stack.push(25);           cout<<stack.top(); }

QUEUE DINAMIS

  #include <stdio.h> #include <stdlib.h> typedef struct element {     int data;     struct element * next; }element; typedef struct {     element * top;     element * tail; }queue; void empty(queue * s) {     s->top = NULL; } void push(int data,queue *q) {     element * baru = (element*)malloc(sizeof(element));     baru->data = data;     baru->next  = NULL;     if(q->top == NULL)     {         q->top = baru;     }else     {        q->tail->next  = baru;     }    q->tail = baru; } void pop(queue * q) {     printf("%d",q->top->data);     q->top = q->top->next; } int main() {     queue  s;     empty(&s);     push(11,&s);     push(12,&s);     pop(&s);   ...

Ala ala stack dinamis

 #include <stdio.h> #include <stdlib.h> typedef struct element {     int data;     struct element * next; }element; typedef struct {     element * top; }stack; void empty(stack * s) {     s->top = NULL; } void push(int data,stack *s) {     element * baru = (element*)malloc(sizeof(element));     baru->data = data;     baru->next  = NULL;     if(s->top == NULL)     {         baru->next = NULL;     }else     {         baru->next = s->top;     }     s->top = baru; } void pop(stack * s) {     printf("%d",s->top->data);     s->top = s->top->next; } int main() {     stack s;     empty(&s);     push(11,&s);     push(12,&s);     pop(&s);     pop(&s); }

Struktur Data -> Hashing and Chaining

 #include <stdio.h> #include <stdlib.h> #include <string.h> #define max 5 typedef struct element  {     char data[100];     struct element * next; }element; element * chain[max]; void init() {     int i;     for(i=0;i<max;i++)     {         chain[i] = NULL;     } } void insert(char data[100]) {     element * bantu;     bantu = (element*)malloc(sizeof(element));     strcpy(bantu->data,data);     bantu->next = NULL;     int i,nilai;     nilai = 0;     for(i=0;i<strlen(data);i++)     {         nilai = nilai + (int) data[i];     }     int key;     key = nilai % max;     if(chain[key] == NULL)     {         chain[key] = bantu;     }else     {         element * membant...

Double linkedlist

 #include <stdio.h> #include <stdlib.h> typedef struct element {     int data;     struct element * prev;     struct element * next; }element; element * createdelement(int data) {     element * new  = NULL;     new = (element*)malloc(sizeof(element));     new->data = data;     new->prev = NULL;     new->next = NULL;     return new; } void depan(int data,element ** list) {     element * buat = createdelement(data);     buat->next = (*list);     (*list)->prev = buat;     (*list) = buat; } void tengah(int data,int cari,element * list) {     element * buat = createdelement(data);     element * temp = NULL;     temp = list;     list = buat;     while(temp->data != cari)     {         temp = temp->next;     }     buat->ne...

Stack postfix

 #include <stdio.h> #include <stdlib.h> #include <ctype.h> //library untuk memanggil isalnum(untuk menganalisa apakah char tersebut berupa huruf atau angka) #define max 100 typedef struct stack  {     char data[max];     int top;      }stack; void push(char data,stack *s) {     if(s->top < max)     {         s->top  = s->top +1;         s->data[s->top] = data;     }else     {         printf("penuh");     } } char pop(stack * s) {     char mencoba1;     mencoba1 = s->data[s->top];     s->top--;     return mencoba1;      } int priority(char x) {     if(x == '(')         return 0;     if(x == '+' || x == '-')         return 1;     if(x == '*' || x == '/')   ...

BINARY SEARCH TREE

 #include <stdio.h> #include <malloc.h> int ketemu = 0; typedef struct element {     int data;     struct element * left;     struct element * right; }element; element * createdtree(int data) {     element * buat;     buat = (element*)malloc(sizeof(element));     buat-> data = data;     buat->left = NULL;     buat-> right = NULL; } void insertdata(int data, element **tree) {     if((*tree)==NULL)     {         (*tree)= createdtree(data);              }else if(data >= (*tree)->data)     {         insertdata(data,&(*tree)->right);     }else     {         insertdata(data,&(*tree)->left);     } }     void preorder(element * tree)     {         if(tree == NULL) return;   ...

BINARY SEARCH TREEE

 // Online C compiler to run C program online #include <stdio.h> #include <malloc.h> int ketemu = 0; typedef struct element {     int data;     struct element * left;     struct element * right; }element; element * createdtree(int data) {     element * buat;     buat = (element*)malloc(sizeof(element));     buat-> data = data;     buat->left = NULL;     buat-> right = NULL; } void insertdata(int data, element **tree) {     if((*tree)==NULL)     {         (*tree)= createdtree(data);              }else if(data >= (*tree)->data)     {         insertdata(data,&(*tree)->right);     }else     {         insertdata(data,&(*tree)->left);     } }     void preorder(element * tree)     {     ...

N TREE

  #include <stdio.h> #include <stdlib.h> /* N tree implementasi Binary Tree */ typedef struct Node { char data; struct Node * nextchild; struct Node * nextsibling; }Node; Node * createtree(char a) { Node * news; news = (Node *) malloc(sizeof(Node)); news->data = a; news->nextchild = NULL; news->nextsibling = NULL; return news; } Node * telusuriparent(char a, Node ** tree) { Node * temp = (*tree); Node * child = NULL; while(temp->data != a && temp->nextchild != NULL) { //periksa anak child = temp->nextchild; while(child->data != a && child->nextsibling != NULL) { child = child->nextsibling; } if(child->data == a) { return temp; } temp = temp->nextchild; if(temp->data == a) return temp; } return temp; } void insertdata (char data,char parent,Node ** t...

Graphh delete

  #include <stdio.h> #include <malloc.h> struct vertex { struct edge * jalur; int data; struct vertex * nextvertex; }; struct edge { struct vertex * tujuan; struct edge * nextedge; int beban; }; struct graph { struct vertex * first; }; void newgraph(struct graph * g) { g->first = NULL; } void buatvertex(struct graph * g,int data) { struct vertex * baru = (struct vertex*)malloc(sizeof(struct vertex)); baru->data = data; baru->jalur = NULL; baru->nextvertex = NULL; if(g->first == NULL) { g->first = baru; }else { struct vertex * akhir = g->first; while(akhir->nextvertex != NULL) { akhir = akhir->nextvertex; } akhir->nextvertex = baru; } } void buatedge(struct vertex * awal,struct vertex * tujuan,int beban) { struct edge * buatedge = (struct edge*)malloc(sizeof(stru...

GRAPH

 #include <stdio.h> #include <malloc.h> struct vertex {     struct edge * jalur;     int data;     struct vertex * nextvertex;      }; struct edge {     struct vertex * tujuan;     struct edge * nextedge;     int beban; }; struct graph {     struct vertex * first;      }; void newgraph(struct graph * g) {     g->first = NULL; } void buatvertex(struct graph * g,int data) {     struct vertex * baru  = (struct vertex*)malloc(sizeof(struct vertex));     baru->data = data;     baru->jalur  = NULL;     baru->nextvertex  = NULL;     if(g->first == NULL)     {         g->first = baru;     }else     {         struct vertex * akhir  = g->first;         while(akhir->nextvertex != NULL)  ...

Simple single linked list with delete algorithm in c

 #include <stdio.h> #include <stdlib.h> typedef struct element {      int data;     struct element * next; }element; element * createdelement(int data) {     element * buatelement = NULL;     buatelement = (element*)malloc(sizeof(element));     buatelement->data  = data;     buatelement->next = NULL; } void adddepan(int data, element ** g) {     element * newlist = createdelement(data);     newlist->next = (*g);     (*g) = newlist; } void addtengah(int data,int cari, element * g) {     element * newlist = createdelement(data);     element * temp  = NULL;     temp = g;     g = newlist;     while(temp->data != cari)     {         temp = temp->next;     }     newlist->next = temp->next;     temp->next = newlist; } void addbelakang(int dat...

Simple Single Linked List without delete Algoritm in C

 #include <stdio.h> #include <stdlib.h> typedef struct element {      int data;     struct element * next; }element; element * createdelement(int data) {     element * buatelement = NULL;     buatelement = (element*)malloc(sizeof(element));     buatelement->data  = data;     buatelement->next = NULL; } void adddepan(int data, element ** g) {     element * newlist = createdelement(data);     newlist->next = (*g);     (*g) = newlist; } void addtengah(int data,int cari, element * g) {     element * newlist = createdelement(data);     element * temp  = NULL;     temp = g;     g = newlist;     while(temp->data != cari)     {         temp = temp->next;     }     newlist->next = temp->next;     temp->next = newlist; } void addbelakang(int dat...

QUEUE DALAM BAHASA C

#include <stdio.h> #include <stdlib.h> #include <string.h> #define Maxsize 7 typedef struct queue {     int head;     int tail;     int data[Maxsize]; }queue; void inialisasi(queue *q) {     q->head = -1;     q->tail = -1; } int isFull(queue  *q) {     if(q->head == 0 &&  q->tail == (Maxsize-1))         return 1;     else if((q->head) - (q->tail) == 1)     {     return 1; }     else { return 0; } } int isEmpty(queue *q) {     if(q->head == -1 && q->tail == -1)     {         return 1;     }     else     {         return 0;     } } void enQueue (queue *q,int data) {     if(isFull(q) ==0)     {          if(q->head == -1)     {   ...