Select Menu

Search This Blog

Populer Posts Hari ini

Popular Posts

Powered by Blogger.

Lorem 1

adsense

" });

Circle Gallery

" });

News

" });
» » source code List Linear insert Last dengan bahasa C

#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();
}

About andi

«
Next
Newer Post
»
Previous
Older Post

No comments

Leave a Reply