C++ : Stack

Rabu, 24 Maret 2010 0 komentar
Coding lagi,.. hhe,..

/*Tumpukan (Stack).Uji tumpukan kosong,
Cipta tumpukan, push, pop dan cetak tumpukan */
#include

#include
#include
typedef enum { FALSE = 0, TRUE = 1} BOOL;

// Deklarasi Node
struct nod {
char data;
struct nod *next;
};
typedef struct nod NOD;

// Uji Tumpukan Kosong
BOOL TumpukanKosong(NOD *T)
{
return ((BOOL)(T == NULL));
}

//Cipta Node Baru
NOD *NodBaru (char item)
{
NOD *n;
n = (NOD*) malloc(sizeof(NOD));
if(n != NULL) {
n->data = item;
n->next = NULL;
}
return n;
}
void CiptaTumpukan (NOD **T)
{
*T = NULL; // Buat Tumpukan Kosong
}

// Push
void Push(NOD **T, char item)
{
NOD *n;
n = NodBaru(item);
n->next = *T;
*T = n;
}

// Pop
char Pop(NOD **T)
{
NOD *P; char item;
if ( ! TumpukanKosong(*T)) {
P = *T;
*T = (*T)->next;
item = P->data;
free(P);
}
return item;
}
void CetakTumpukan (NOD *T)
{
NOD *p;
printf("T --> ");
for (p = T; p != NULL; p = p->next) {
printf("[%c] --> ", p->data); }
printf("NULL\n");
}
int main()
{
NOD *T;
CiptaTumpukan(&T);
Push(&T, 'I');
Push(&T, 'D');
Push(&T, 'E');
CetakTumpukan(T);
return 0;
}

0 komentar:

Posting Komentar

 

©Copyright 2011 Teknik Informatika - DD | TNB