// Single Linked List
#include
#include
struct CELL {
struct CELL *next;
int value;
};
typedef struct CELL cell; // selanjutnya deklarasi sel cukup dengan "cell", tidak perlu menulis lengkap "struct CELL"
cell header;
/*
Nama fungsi: fatal_error
Fungsi: menampilkan error message, kemudian exit
Input: error message
*/
void fatal_error(char *s)
{
fprintf(stderr,s);
exit(1);
}
/*
Nama fungsi: cell_insert
Fungsi: menambahkan sel baru ke linked list
Input: value (nilai) sel yang ingin dimasukkan
*/
void cell_insert(int a)
{
cell *p, *q, *new_cell;
p=header.next;
q=&header;
while((p!=NULL)&&(p->value next;
}
if((new_cell=(cell*)malloc(sizeof(cell)))==NULL) fatal_error("memory tidak cukup");
new_cell->next = p;
q->next = new_cell;
new_cell->value = a;
}
/*
Nama fungsi: cell_delete
Fungsi: menghapus sebuah sel yang memiliki nilai tertentu
Input: value (nilai) sel yang ingin dihapus
*/
void cell_delete(int a)
{
cell *p, *q;
p=header.next;
q=&header;
// selesaikan bagian ini
}
/*
Nama fungsi: print_list
Fungsi: menampilkan value semua sel pada sebuah list
Input: tidak ada
*/
void print_list()
{
cell *p;
printf("\n");
printf("\t\tAddress\t\tvalue\n\t\t------------------------\n");
for(p=header.next;p!=NULL;p=p->next) printf("\t\t%p\t%d\n",p,p->value);
printf("\n");
}
/*
Main function
*/
main()
{
int mode,value;
printf("*****************************\n\t LINKED LIST \n*****************************\n");
printf("Pilihlah operasi yang ingin dilakukan: 1.memasukkan sel baru 2.menghapus sel 3.selesai\t");
while(scanf("%d",&mode)){
switch(mode){
case 1: printf("Operasi yang dipilih: memasukkan sel baru");
printf("Value sel yang ingin dimasukkan ? \t");
scanf("%d",&value);
cell_insert(value);
break;
case 2: printf("Operasi yang dipilih: menghapus sel\n");
printf("Value sel yang ingin dihapus\t");
scanf("%d",&value);
cell_delete(value);
break;
case 3: exit(0);
default: break;
}
print_list();
printf("Pilihlah operasi yang ingin dilakukan: 1.memasukkan sel baru 2.menghapus sel 3.selesai\t");
}
}
Sabtu, 11 Desember 2010
Latihan Dasar Linked List menggunakan Bahasa C
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar