Contoh Percobaan Dan Latihan C++ (Single Linked List 1)
Percobaan 1: Implementasikan operasi dasar Single linked list : Menyisipkan sebagai simpul
ujung(awal) dari linked list.
Berikut Program nya:
#include <stdio.h>
#define MAX 10
typedef struct {
int Item[MAX];
int Front;
int Rear;
int Count;
} Queue;
// Inisialisasi antrian
void Inisialisasi(Queue *q)
{
q->Front = q->Rear = -1;
q->Count = 0;
}
// Prosedur untuk menyisipkan data pada antrian
void Tambah(Queue *q, int item)
{
if (q->Rear == MAX-1)
{
printf ("\nAntrian Penuh");
return ;
}
q->Rear++;
q->Item[q->Rear] = item;
q->Count++;
if (q->Front == -1) q->Front = 0;
}
// Prosedur untuk menghapus data dari antrian
int Hapus(Queue *q)
{
int data ;
if (q->Front == -1)
{
printf ("\nAntrian Kosong");
return NULL;
}
data = q->Item[q->Front];
q->Count--;
if (q->Front == q->Rear)
q->Front = q->Rear = -1;
else
q->Front++;
return data;
}
void Tampil(Queue *q)
{
for(int i=0; i<q->Count; i++)
printf("\nData : %d", q->Item[i]);
}
int main()
{
Queue q;
int data;
Inisialisasi(&q);
Tambah(&q,11);
Tambah(&q,12);
Tambah(&q,13);
Tambah(&q,14);
Tambah(&q,15);
Tambah(&q,16);
Tambah(&q,17);
Tambah(&q,18);
Tambah(&q,19);
Tambah(&q,20);
Tambah(&q,21);
Tampil(&q);
data = Hapus(&q);
}
Berikut Output Program nya:
Berikut Program nya:
#include <stdio.h>
#define MAX 10
typedef struct {
int Item[MAX];
int Front;
int Rear;
int Count;
} Queue;
// Inisialisasi antrian
void Inisialisasi(Queue *q)
{
q->Front = q->Rear = -1;
q->Count = 0;
}
// Prosedur untuk menyisipkan data pada antrian
void Tambah(Queue *q, int item)
{
if ((q->Rear == MAX-1 && q->Front == 0) || (q->Rear + 1 ==
q->Front))
{
printf ("\nAntrian Penuh");
return ;
}
if (q->Rear == MAX - 1)
q->Rear = 0;
else
q->Rear++;
q->Item[q->Rear] = item;
q->Count++;
if (q->Front == -1) q->Front = 0;
}
// Prosedur untuk menghapus data dari antrian
int Hapus(Queue *q)
{
int data ;
if (q->Front == -1)
{
}
else
{
printf ("\nAntrian Kosong");
return NULL;
data = q->Item[q->Front];
q->Count--;
if (q->Front == q->Rear)
q->Front = q->Rear = -1;
else
{
if (q->Front == MAX-1)
q->Front = 0;
else
{
}
}
}
q->Front++;
return data;
}
void Tampil(Queue *q)
{
for(int i=0; i<q->Count; i++)
printf("\nData : %d", q->Item[i]);
}
int main()
{
Queue q; int
data;
Inisialisasi(&q);
Tambah(&q,11);
Tambah(&q,12);
Tambah(&q,13);
Tambah(&q,14);
Tambah(&q,15);
Tambah(&q,16);
Tambah(&q,17);
Tambah(&q,18);
Tambah(&q,19);
Tambah(&q,20);
Tambah(&q,21);
Tampil(&q);
data = Hapus(&q);
printf("\nHapus Item = %d ", data);
data = Hapus(&q);
printf("\nHapus Item = %d ", data);
data = Hapus(&q);
printf("\nHapus Item = %d ", data);
Tampil(&q);
}
Berikut Output Program nya:
Percobaan 3: Implementasikan operasi dasar Single linked list : Mencari sebuah simpul
tertentu. Tambahkan kondisi jika yang dicari adalah data yang paling depan.
#include <stdio.h>
#include <malloc.h>
#include <string.h>
struct node
{
char Kata[50];
struct node *next;
};
struct node *head = NULL;
struct node *baru = NULL;
struct node* buatsimpul()
{
struct node *temp;
temp = (struct node*)malloc(sizeof(struct node));
if(head == NULL)
{
temp->next = NULL;
head = temp;
}
else if (head != NULL)
{
temp->next = head;
head = temp;
}
printf("Kata Kata : ");
scanf("%s", temp->Kata);
return temp;
}
void printList(struct node *a)
{
printf("\n");
node *p = a;
while (p != NULL)
{
printf("%s ", p->Kata);
p = p->next;
}
}
void printNode(struct node *a)
{
node *p = a;
printf("%s ", p->Kata);
}
void printCari(struct node *a)
{
node *p = a;
printf("\n%s ditemukan di dalam linked list. ", p->Kata);
}
struct node* Cari()
{
struct node *cari;
char query[50];
printf("\nInput data yang ingin dicari : ");
scanf("%s", query);
cari = head;
while (strcmp(cari->Kata, query) != 0)
{
cari = cari->next;
if (cari == NULL)
{
printf ("\n%s tidak dapat ditemukan di dalam list\n", query);
break;
}
return cari;
}
}
int main()
{
printf("Program Operasi Mencari suatu kata tertentu\n");
printf("Silahkan input 4 kata kata untuk list nya \n");
head = buatsimpul();
baru = buatsimpul();
baru = buatsimpul();
baru = buatsimpul();
struct node *cari;
printList(head);
cari = Cari();
printCari(cari);
printf("\n");
return 0;
}
0 comments:
Posting Komentar