Potongan Program Skripsiq... (Antrian)


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

struct list{
char data;
struct list *next;
};

typedef struct list node;
void qinsert(node**,node**);
void qdelete(node**,node**);
void disp(node*);


void main()
{
int opt;
char ch;
node *front;
node *rear;
rear=front=NULL;
do
{
printf("\nMasukkan pilihan anda dalam antrian\n");
printf("\n1. Input\n");
printf("\n2. Hapus\n");
printf("\n3. Tampilkan Antrian\n");
scanf("%d",&opt);
switch(opt)
{
case 1:
qinsert(&front,&rear);
break;
case 2:
qdelete(&front,&rear);
break;
case 3:
disp(front);
break;
}
printf("\nMau melanjutkan[y/n]\n");
ch=(char)getche();
}while(ch=='Y' || ch=='y');
printf("\nTekan sembarang tombol untuk keluar\n");
getch();
}

void qinsert(node **front,node **rear)
{
node *newnode;
newnode=(node*)malloc(sizeof(node));
newnode->next=NULL;
printf("\nMasukkan karakter untuk di push\n");
fflush(stdin);
scanf("%c",&(newnode->data));
if(*front==NULL && *rear==NULL)
{
*front=newnode;
*rear=newnode;
}
else
{
(*rear)->next=newnode;
*rear=newnode;
}
}

void qdelete(node **front,node **rear)
{
node *delnode;
if((*front)==NULL && (*rear)==NULL)
printf("\nAntrian kosong dan tak ada elemen untuk di hapus\n");
else
{
delnode=*front;
(*front)=(*front)->next;
free(delnode);
}
}
void disp(node *f)
{
while(f!=NULL)
{
printf(" %c ",f->data);
f=f->next;
}
}</stdlib.h></conio.h></stdio.h>

Tidak ada komentar:

Posting Komentar