#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
struct datapointer{
int nilai;
struct datapointer *next;
} *first=NULL; /*variabel first di set NULL agar tercipta sebuah linked list kosong */
void inputdata(void);
void outputdata(void);
int main(){
first = (struct datapointer*)malloc(sizeof(struct datapointer));
/* Variabel first di isi dengan sebuah alamat pada memory. Variabel first akan menjadi “head” atau kepala pada pointer.Pada algoritma inyi tidak ada perubahan nilai variabel first, sehingga data pertama yang di inputkan menjadi data pertama yang diproses saat penelusuran data*/
/* Perintah “malloc” merupakah perintah “memory allocation”. Perintah ini berfungsi mengalokasikan suatu alamat pada memory pada sebuah variabel*/
inputdata();
outputdata();
system("pause");
return 0;
}
void inputdata(void){
struct datapointer *newpointer;
char reply;
newpointer = first;
do{
printf("Input Data List : ");
scanf("%d",&newpointer->nilai);/*perintah pengisian data pada linked list */
printf("Is There More (Y/N) : ");
do{
reply=toupper(getch());
}while (!(reply=='Y'||reply=='N'));
/* toupper merupakan perintah untuk meng-upcase (mengkapitalkan) sebuah karakter.pada sebagian compiler perintah ini hanya terdapat pada librari ctype.h perintah getch merupakan perintah untuk membaca inputan dari keyboard.pada sebagian compiler perintah ini hanya terdapat pada librari conio.h*/
if(reply=='Y'){
newpointer->next = (struct datapointer*)malloc(sizeof(struct datapointer));
newpointer = newpointer->next;
/* Jika masih ada penambahan data, maka newpointer->next harus dialokasikan pada memory yang baru.Selanjutnya newpointer akan mengambil alamat memory yang baru tersebut dan mengisikan nilai pada alamat tersebut*/
} else newpointer->next = NULL;
/* jika tid ak ada data yang dimasukkan lagi, maka sebagai penanda akhir dari linked list, newpointer->next di set NULL */
printf("\n");
}whilereply=='Y');
}
void outputdata(void){
struct datapointer *temp;
temp = first;
while (temp){
printf("Data Pointer = %d\n",temp->nilai);
temp = temp->next;
}
getch();
}
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
struct datapointer{
int nilai;
struct datapointer *next;
} *first=NULL; /*variabel first di set NULL agar tercipta sebuah linked list kosong */
void inputdata(void);
void outputdata(void);
int main(){
first = (struct datapointer*)malloc(sizeof(struct datapointer));
/* Variabel first di isi dengan sebuah alamat pada memory. Variabel first akan menjadi “head” atau kepala pada pointer.Pada algoritma inyi tidak ada perubahan nilai variabel first, sehingga data pertama yang di inputkan menjadi data pertama yang diproses saat penelusuran data*/
/* Perintah “malloc” merupakah perintah “memory allocation”. Perintah ini berfungsi mengalokasikan suatu alamat pada memory pada sebuah variabel*/
inputdata();
outputdata();
system("pause");
return 0;
}
void inputdata(void){
struct datapointer *newpointer;
char reply;
newpointer = first;
do{
printf("Input Data List : ");
scanf("%d",&newpointer->nilai);/*perintah pengisian data pada linked list */
printf("Is There More (Y/N) : ");
do{
reply=toupper(getch());
}while (!(reply=='Y'||reply=='N'));
/* toupper merupakan perintah untuk meng-upcase (mengkapitalkan) sebuah karakter.pada sebagian compiler perintah ini hanya terdapat pada librari ctype.h perintah getch merupakan perintah untuk membaca inputan dari keyboard.pada sebagian compiler perintah ini hanya terdapat pada librari conio.h*/
if(reply=='Y'){
newpointer->next = (struct datapointer*)malloc(sizeof(struct datapointer));
newpointer = newpointer->next;
/* Jika masih ada penambahan data, maka newpointer->next harus dialokasikan pada memory yang baru.Selanjutnya newpointer akan mengambil alamat memory yang baru tersebut dan mengisikan nilai pada alamat tersebut*/
} else newpointer->next = NULL;
/* jika tid ak ada data yang dimasukkan lagi, maka sebagai penanda akhir dari linked list, newpointer->next di set NULL */
printf("\n");
}whilereply=='Y');
}
void outputdata(void){
struct datapointer *temp;
temp = first;
while (temp){
printf("Data Pointer = %d\n",temp->nilai);
temp = temp->next;
}
getch();
}
No comments