Anda di halaman 1dari 4

#include <stdio.h> #include <stdlib.h> #include <conio.

h> typedef struct Node Node; struct Node { int data; Node *next; }; Node *head; Node *tail; int nodeCount; void init() { head = NULL; tail = NULL; nodeCount = 0; } int insertLast(int newData) { Node *newNode = (Node *) malloc(sizeof (Node)); newNode->data = newData; if (head == NULL) { head = newNode; printf("Sukses Input Data \n"); getch (); system("CLS"); } else { tail->next = newNode; printf("Sukses Input Data \n"); getch (); system("CLS"); } tail = newNode; tail->next = NULL; nodeCount++; } void printList() { Node *iterator = head; while (iterator != NULL) { printf("\n%d", iterator->data); iterator = iterator->next; } getch (); system("CLS"); } void freeMemory() { Node *deleteNode; while (head != NULL) { deleteNode = head; head = head->next; free(deleteNode); } tail = NULL; nodeCount = 0; }

int insertFirst(int newData) { Node *newNode = (Node *) malloc(sizeof (Node)); //newNode = head; newNode->data = newData; if (head == NULL) { newNode->next = NULL; head = newNode; tail = head; printf("Sukses Input Data \n\n"); getch(); } else { newNode->next = head; head=newNode; printf("Sukses Input Data \n\n"); getch(); } system("CLS"); nodeCount++; } int insertAt(int newData) { int index; Node *newNode = (Node *) malloc(sizeof (Node)); if (head==NULL){ printf("\nmasukkan data Awal\n"); getch(); system("CLS"); } else{ newNode = head; printf("\n\ndimasukkan setelah data : "); scanf("%d", &index); while (index != newNode->data && index!=NULL){ newNode = newNode->next; } if (newNode==NULL) printf("data tidak ada"); //printf("\n\nnewnode->next : %d \n\n",newNode); //printf("\n\nnewnode->data : %d \n\n",newNode->data); Node *temp = (Node *) malloc(sizeof (Node)); temp->data = newData; temp->next=newNode->next; newNode->next=temp; printf("\ndata sukses\n\n"); getch (); system("CLS"); nodeCount++; } } int deleteFirs (){ head=head->next; } int deleteLast (){ Node *temp = (Node *) malloc(sizeof (Node)); temp=head; if (temp == tail){head=NULL; tail=NULL;} while (temp->next!=tail){

printf("\nkamu bobobobob\n\n"); temp = temp->next; } tail = temp; tail->next=NULL; } int main() { init(); int i,newData; struct node *n; //inisialisasi node n while(1) //kondisi jika benar { printf("\nList Operations\n"); //pilihan printf("==================\n"); printf("1.Insert first\n"); printf("2.Insert mid\n"); printf("3.Insert last\n"); printf("4.Display\n"); printf("5.Delete first\n"); printf("6.Delete last\n"); printf("7.Exit\n"); printf("Enter your choice : "); //masukan pilihan if(scanf("%d",&i)<=0){ //jika pada inputan dimasukan nilai kurang dari 0 printf("Enter only an Integer\n"); //muncul tulisan ini exit(0); //keluar dari program } else { switch(i) { case 1: printf("masukkan Data : "); scanf("%d",&newData); insertFirst(newData); break; case 2: printf("masukkan Data : "); scanf("%d",&newData); insertAt(newData); break; case 3: printf("masukkan Data : "); scanf("%d",&newData); insertLast(newData); break; case 4: if(head==NULL) { printf("List is Empty\n"); } else { printf("Element(s) in the list are : "); } printList(); break; case 5: deleteFirs (); break; case 6: if (head == NULL){printf("\n\nDATA KOSONG BUNG !!!\n"); getch (); system ("CLS"); }else {

deleteLast (); } case 7: default: } } } return (EXIT_SUCCESS); } break; return 0; printf("Invalid option\n");

Anda mungkin juga menyukai