RSS
Facebook
Twitter


Selamat pagi menjelang siang pembaca.
Kali ini saya akan berbagi ilmu mengenai programming J. Kebetulan sekali, kali ini saya menuju ke tingkat 2 dan saya mendapat mata kuliah STRUKTUR DATA. Semoga ini bisa bermanfaat bagi pembaca.
Dalam ilmu komputer terdapat berbagai struktur data dasar diantaranya tumpukan(stack), antrian(queue),untaian(linked list), dan pohon(tree). Dalam postingan kali ini saya aka membahas mengenai struktur data stack. Struktur stack adalah struktur yang meniru bagaimana proses menyimpan dan mengambil satu buku pada suatu tumpukan. Proses menyimpan biasa disebut push. Dan proses mengambil di sebut pop. Dalam sturktur ini terjadi urutan LIFO(Last In First Out). Inilah contoh scriptnya J.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>

typedef struct nod{int data;
                                                nod *next;} NOD,*NODPTR;

void CiptaStack(NODPTR *s)
{
 *s=NULL;
}

NODPTR NodBaru()
{
 clrscr();
 NODPTR n;
 int nilai;
 printf("Masukkan Sebuah Bilangan Bulat: ");
 scanf("%d",&nilai);
 n=(NODPTR) malloc(sizeof(nod));
 if(n!=NULL)
 {
  n->data=nilai;
  n->next=NULL;
 }
 return n;
}

void SisipStack(NODPTR *s,NODPTR t)
{
 t->next=*s;
 *s=t;
}

void CetakStack(NODPTR s)
{
 NODPTR ps;
 clrscr();
 if(s!=NULL)
 {
  for(ps=s;ps!=NULL;ps=ps->next)
   printf("%d->",ps->data);
  printf("NULL\n");
  getch();
 }
 else
 {
  printf("Stack Kosong");
  getch();
 }
}

void HapusStack(NODPTR p)
{
 NODPTR q;
 for(q=p;q!=NULL;)
 {
  p=p->next;
  free(q);
  q=p;
 }
}

void BacaData(NODPTR *p)
{
 NODPTR pt;
 clrscr();
 if(*p!=NULL)
 {
  pt=*p;
  *p=pt->next;
  printf("Data yang dibaca adalah %d",pt->data);
  free(pt);
  getch();
 }
 else
 {
  printf("Stack Kosong");
  getch();
 }
}

void main()
{
 NODPTR pel,n;
 int pil;
 CiptaStack(&pel);
 do
 {
  clrscr();
  printf("Pilihan:\n");
  printf("[1]Push\n");
  printf("[2]Pop\n");
  printf("[3]Cetak Stack\n");
  printf("[4]Keluar\n");
  printf("Masukkan Pilihan: ");
  scanf("%d",&pil);
  switch(pil)
  {
   case 1:n=NodBaru();
          SisipStack(&pel,n);
          break;
   case 2:BacaData(&pel);
          break;
   case 3:CetakStack(pel);
          break;
  }
 }
 while(pil!=4);
 HapusStack(pel);
 getch();
}

0 komentar:

Posting Komentar

  • Unordered List

  • More Text