#include <stdio.h> #include <stdlib.h> struct Node{ int data; struct Node* next; }; struct Node* head; void insert(int j){ struct Node* temp = (struct Node*)malloc(sizeof(struct Node)); temp->data = j; temp->next = head; if(head!=NULL) temp->next=head; head = temp; } void print() { // printf("The list is ") struct Node*temp = head; do{ printf("%d",temp->data); temp = temp->next; printf("\t"); }while(temp->next!=NULL); } int length (struct Node* head){ struct Node*current = head; int count=0; while(current!=NULL){ count++; current=current->next; } return count; } void delete(int p){ struct Node* pointer = head; if(p==1){ head = pointer -> next; free(pointer); return; } int i; for(i=0;i<p-2;i++){ pointer = pointer->next; } struct Node* pointer2 = pointer->next; pointer->next = pointer2->next; //pointer2 = pointer->next; free(pointer2); } struct Node* reverse(struct Node*head){ struct Node *current,*prev,*next; current = head; prev = NULL; while(current!=NULL){ next = current->next; current->next = prev; prev = current; current = next; } head = prev; return head; } int main() { /* printf("Hello world!\n"); return 0;*/ head=NULL; printf("How many numbers\n"); int i,j,n; scanf("%d",&n); printf("Enter the numbers\n"); for(i=0;i<n;i++){ scanf("%d",&j); insert(j); } print(); int l,p; l=length(head); printf("The length is %d\n",l); printf("Enter the position you want to delete"); scanf("%d",&p); delete(p); print(); head = reverse(head); printf("\nThe reversed list is"); print(); return 0; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter