LINK

LINK
GUNADARMA

Selasa, 28 Desember 2010

Bahasa C (program LINKED LIST)

#include
#include

struct node * del(struct node *, int);
int length(struct node *);

struct node {
int data;
struct node *link;
};

struct node *insert(struct node *head, int n) {
struct node *temp;
if (head == NULL) {
head = (struct node *) malloc(sizeof(struct node));
if (head == NULL) {
printf("Error\n");
exit(0);
}
head-> data = n;
head-> link = NULL;
} else {
temp = head;
while (temp-> link != NULL)
temp = temp-> link;
temp-> link = (struct node *) malloc(sizeof(struct node));
if (temp -> link == NULL) {
printf("Error\n");
exit(0);
}
temp = temp-> link;
temp->data = n;
temp->link = NULL;
}
return head;
}

void printlist(struct node *pnode) {
if (pnode != NULL) {
while (pnode != NULL) {
printf("%d\t", pnode->data);
pnode = pnode-> link;
}
} else
printf("Linkedlist kosong\n");

}

int main(void) {
int n = 0, x = 0, i = 0;
struct node *start = NULL;

printf("Masukan banyak node yang akan dibuat pada linked list = ");
scanf("%d", &n);
for (i = 0; i < n; i++) { printf("Data pada node-[%i] = ", i + 1); scanf("%d", &x); fflush(stdin); start = insert(start, x); } printf("\nData - data pada linked list sebagai berikut:\n"); printlist(start); printf("% \nMasukan no node yang akan dihapus : "); scanf("%d", &n); fflush(stdin); start = del(start, n); printf("\nUpdate data pada linked list sebagai berikut:\n"); printlist(start); printf("\n\n"); system("pause"); return 0; } struct node * del(struct node *head, int node_no) { struct node *prev, *curr; int i; if (head == NULL) { printf("Tidak ada node pada linkedlist yang dapat dihapus\n"); } else { if (node_no > length(head)) {
printf(
"Angka yang anda masukan lebih besar dari panjang linkedlist\n\n");
} else {
prev = NULL;
curr = head;
i = 1;
while (i < node_no) { prev = curr; curr = curr-> link;
i = i + 1;
}
if (prev == NULL) {
head = curr->link;
free(curr);
} else {
prev->link = curr -> link;
free(curr);
}
}
}
return head;
}

int length(struct node *pnode) {
int pjg = 0;
while (pnode != NULL) {
pjg++;
pnode = pnode->link;
}
return pjg;
}

1 komentar:

  1. artikelnya bermanfaat kak, ini sya jga punya artikel tentang Linked List Dalam Bahasa C, smoga dpt saling melengkapi

    Linked List Dalam Bahasa C

    Kumpulan Materi Bahasa C, Lengkap dengan contoh program

    BalasHapus