Laporan Praktikum Struktur Data Modul 10 Linked List

PRAKTIKUM

    • Praktikum 1
  • Script Program
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct nod{
int data;
struct nod *next;
} NOD, *NODPTR;
void CiptaSenarai (NODPTR *s)
{
*s = NULL;
}
NODPTR NodBaru(int m)
{
NODPTR n;
n = (NODPTR) malloc(sizeof(NOD));
if(n != NULL){
n -> data = m;
n -> next = NULL;
}
return n;
}
void SisipSenarai (NODPTR *s, NODPTR t, NODPTR p)
{
if (p==NULL) {
t -> next = *s;
*s = t;
}
else {
t -> next = p -> next;
p -> next = t;
}
}
void CetakSenarai (NODPTR s)
{
NODPTR ps;
for (ps = s; ps !=NULL; ps = ps -> next)
printf("%d -->", ps -> data);
printf("NULL\n");
}
int main()
{
NODPTR pel;
NODPTR n;
CiptaSenarai(&pel);
n = NodBaru(55);
SisipSenarai(&pel, n, NULL);
n= NodBaru(75);
SisipSenarai(&pel, n, NULL);
CetakSenarai(pel);
return 0;
}
  • Output
  • Penjelasan


    • Praktikum 2
  • Script Program
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
typedef struct Mahasiswa
{
 int nim;
 Mahasiswa *next;
 }Mahasiswa;

void init(Mahasiswa **p)
{
 *p = NULL;
 }
Mahasiswa *alokasi(int nim)
{
 Mahasiswa *p;
 p = (Mahasiswa*)malloc(sizeof(Mahasiswa));
 if(p !=NULL)
 {
 p->next = NULL;
 p->nim = nim;
 }
 return(p);
}

void add(Mahasiswa **p, int nim)
{
 *p = alokasi(nim);
 printf("%d",(*p)->nim);
 }

int main()
{
 Mahasiswa *head;
 init(&head);
 add(&head,56);
 getch();
 return 0;
}
  • Output
  • Penjelasan


LATIHAN

    • Latihan 1
  • Script Program
#include<stdio.h>
#include<stdlib.h>
struct node{ /*Mendefinisikan Struktur yang akan dirangkai sebagai queue*/
int data;
struct node*p;};

/*Mendefinisikan fungsi untuk menambahkan elemen ke dalam queue serta menempatkan pada bagian akhir queue*/
void TambahElemen(struct node **d,struct node **b,int nilai){
/*Membuat Struktur node baru*/
struct node*temp;
temp=(struct node *)malloc (sizeof (struct node));

/*Mendefinisikan field yang terdapat pada struktur node yang baru dialokasikan*/
temp->data=nilai;
temp->p=NULL;
if(*d == NULL){
*d = temp;
}else {
(*b)->p = temp;}
*b = temp;}
void HapusElemen(struct node **d,struct node **b){struct node *temp;
if(*d == NULL){
printf("Tidak terdapat elemen dalam queue");
}else{
temp = *d;
*d = temp->p;
free(temp);
if(*d == NULL){
*b = NULL;
}
}
}
void TampilkanNilai(struct node *d){
int nilai;
while (d!= NULL){
nilai = d->data;
printf("%d\n",nilai);
d = d->p;}
}
int main(void){
struct node *depan, *belakang;
depan = belakang = NULL;
TambahElemen(&depan, &belakang, 10);
TambahElemen(&depan, &belakang, 20);
TambahElemen(&depan, &belakang, 30);
TambahElemen(&depan, &belakang, 40);
TampilkanNilai(depan);
HapusElemen(&depan, &belakang);
printf("Nilai-Nilai didalam Queue");printf("Setelah penghapusan Elemen Pertama:\n");
TampilkanNilai(depan);
return 0;
}
  • Output
  • Penjelasan

Postingan terkait:

Belum ada tanggapan untuk "Laporan Praktikum Struktur Data Modul 10 Linked List"

Posting Komentar