online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include<stdio.h> #include<stdlib.h> typedef struct Linked { int val; struct Linked * next; } lnk; lnk * insertbeg(lnk * , int); lnk * insertend(lnk * , int); lnk * insertatpos(lnk * , int, int); lnk * del(lnk * , int); void disp(lnk * ); lnk * insertbefore(lnk * , int); void insertafter(lnk * , int); int main() { lnk * head = NULL; int ch, v, p; while (1) { printf("\n1) Insert End\n2) Insert begining\n3) Insert at Position\n4) Insert after a certain node\n5) Insert before a certain node\n6) Delete\n7) Display\n8) Exit"); printf("\n Enter your choice : "); scanf("%d", & ch); switch (ch) { case 1: printf("\nEnter the value to be inserted : "); scanf("%d", & v); head = insertend(head, v); break; case 2: printf("\nEnter the value to be inserted : "); scanf("%d", & v); head = insertbeg(head, v); break; case 3: printf("\nEnter the value to be inserted : "); scanf("%d", & v); printf("\n Enter the position where to be inserted : "); scanf("%d", & p); head = insertatpos(head, v, p); break; case 4: printf("\nEnter the value after which you want to Insert : "); scanf("%d", & v); insertafter(head, v); break; case 5: printf("\nEnter the value before which you want to Insert : "); scanf("%d", & v); head = insertbefore(head, v); break; case 6: printf("\n Enter the element to be deleted : "); scanf("%d", & v); head = del(head, v); break; case 7: printf("\n Values in the linked list are : "); disp(head); break; case 8: exit(0); default: printf("\n Wrong choice "); } } } lnk * insertbeg(lnk * h, int g) { lnk * temp; temp = (lnk * ) malloc(sizeof(lnk)); temp -> val = g; temp -> next = h; h = temp; return h; } lnk * insertend(lnk * h, int g) { lnk * temp, * ptr; temp = (lnk * ) malloc(sizeof(lnk)); temp -> val = g; temp -> next = NULL; if (h == NULL) { printf("\n This is going to be first/head node"); h = temp; } else { ptr = h; while (ptr -> next != NULL) ptr = ptr -> next; ptr -> next = temp; } return h; } lnk * insertatpos(lnk * h, int g, int p) { lnk * ptr, * temp; int i; temp = (lnk * ) malloc(sizeof(lnk)); temp -> val = g; temp -> next = NULL; if (h == NULL) { h = temp; printf("\n This is going to be first/head node"); } else { if (p == 1) { temp -> next = h; h = temp; } else { ptr = h; for (i = 1; i < p - 1 && ptr != NULL; i++) ptr = ptr -> next; if (ptr == NULL) { printf("\n There is no such location "); return h; } else { temp -> next = ptr -> next; ptr -> next = temp; } } } return h; } lnk * del(lnk * h, int g) { lnk * pre, * ptr; if (h == NULL) { printf("\nNothing to delete"); return h; } else { if (h -> val == g) { ptr = h; h = h -> next; } else { ptr = h; while (ptr != NULL && ptr -> val != g) { pre = ptr; ptr = ptr -> next; } if (ptr == NULL) { printf("\n No Such element"); return h; } else { pre -> next = ptr -> next; free(ptr); } } } return h; } void disp(lnk * h) { while (h != NULL) { printf("%d,", h -> val); h = h -> next; } printf("\b"); } lnk * insertbefore(lnk * h, int v) { lnk * ptr, * pre, * temp; int p; printf("\nEnter the value of the inserting node:"); scanf("%d", & p); temp = (lnk * ) malloc(sizeof(lnk)); temp -> val = p; temp -> next = NULL; if (h -> val == v) { temp -> next = h; h = temp; } else { ptr = h; while (ptr -> val != v && ptr != NULL) { pre = ptr; ptr = ptr -> next; } temp -> next = pre -> next; pre -> next = temp; } return h; } //insert a node after a particular node void insertafter(lnk * h, int v) { lnk * ptr, * temp; int p; ptr = h; while (ptr -> val != v && ptr != NULL) { ptr = ptr -> next; } printf("\nEnter the value of the inserting node:"); scanf("%d", & p); temp = (lnk * ) malloc(sizeof(lnk)); temp -> next = NULL; temp -> val = p; printf("\n===================================="); if (ptr != NULL) { temp -> next = ptr -> next; ptr -> next = temp; } else printf("\nvalue not found"); }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue