Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
h>
#include<stdlib.h>
listEntry entry;
}Node;
Node *initLinkedList();
int main()
Node *head,*newhead;
int ch=-1;
int pos,no;
listEntry c;
head = NULL;
newhead=NULL;
printf("13: To print the previous and next node of the Nth node of the Linked List\n");
printf("99:To Exit\n");
while(ch!=99)
scanf("%d",&ch);
switch(ch)
case 0:no=printLinkedList(head);
break;
fflush(stdin);
scanf("%d",&c);
head =insertBegin(head,c);
break;
fflush(stdin);
scanf("%d",&c);
head =insertEnd(head,c);
break;
fflush(stdin);
scanf("%d",&c);
head =insertSorted(head,c);
break;
fflush(stdin);
scanf("%d",&c);
scanf("%d",&pos);
head =insertAtPosition(head,c,pos);
break;
scanf("%d",&c);
searchList(head,c);
break;
scanf("%d",&c);
deleteNode(head,c);
break;
case 7:head=reverse(head);
printf("Operation successful\n");
break;
case 8:head=recursiveReverse(head);
printf("Operation successful\n");
no=printLinkedList(head);
break;
pos=printLinkedList(head);
bubbleSort(&head,pos);
printf("Operation successful\n");
no=printLinkedList(head);
break;
case 10:newhead=listdivide(head,newhead);
printLinkedList(head);
printf("\n");
printLinkedList(newhead);
break;
case 11:Nthnode(head);
break;
case 12:totalOccurrence(head);
break;
case 13:previousandnextnode(head);
break;
case 14:appendList(head,newhead);
break;
case 15:head=sorted_lists(head,newhead);
break;
case 99:exit(0);
default:printf("Wrong Input");
return 0;
}
Node *createNode(listEntry entry)
Node *p;
p =(Node*)malloc(sizeof(Node));
p->entry = entry;
p->next = NULL;
return(p);
Node *p;
p =createNode(entry);
if(head == NULL)
head=p;
else
p->next=head;
head = p;
return(head);
Node *p,*curr;
p =createNode(entry);
curr=head;
if(curr == NULL)
head=p;
}
else
while(curr->next!=NULL)
curr=curr->next;
curr->next=p;
return(head);
Node *p,*curr;
p =createNode(entry);
curr=head;
if(curr==NULL)
head=p;
else
curr=head;
curr=curr->next;
p->next=curr->next;
curr->next=p;
return(head);
Node *curr;
curr=head;
int i=0;
while(curr != NULL)
if(curr->entry==data)
i++;
curr=curr->next;
return head;
int i=0;
Node *p,*curr;
p =createNode(entry);
curr=head;
head=p;
return(head);
else
{
printf("Incorrect Operation");
else
p->next =head;
head=p;
else if(pos<1)
printf("Incorrect Operation");
else
if(curr != NULL)
curr=head;
curr=curr->next;
if(curr != NULL)
p->next=curr->next;
curr->next=p;
else
return(head);
Node *prev,*curr,*p;
if(head == NULL)
printf("List is empty");
prev = head;
curr = head->next;
free(prev);
head = curr;
else
prev = head;
curr=head->next;
prev = curr;
curr = curr->next;
if(curr == NULL)
printf("Can't be deleted");
else
prev->next = curr->next;
curr->next = NULL;
return head;
Node *prev,*curr,*next;
curr = head;
prev = NULL;
next = NULL;
if(head != NULL)
while(curr != NULL)
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
}
head = prev;
return head;
Node *revhead;
if(head == NULL)
return NULL;
if(head->next == NULL)
return head;
revhead = recursiveReverse(head->next);
head->next->next=head;
head->next=NULL;
return(revhead);
Node** h;
Node *temp,*p1,*p2;
int i, j, flag=1;
h = head;
flag = 0;
p1 = *h;
p2 = p1->next;
{
temp=p2->next;
p2->next=p1;
p1->next=temp;
*h = p2;
flag = 1;
h = &(*h)->next;
Node *curr;
curr=head;
int i,j=0;
i=printLinkedList(head);
while(j<((i/2)-1))
curr=curr->next;
j++;
newhead=curr->next;
curr->next=NULL;
printf("%d",newhead->entry);
return newhead;
int i;
Node *curr;
curr=head;
printf("Enter the node you want");
scanf("%d",&i);
while(i>1)
curr=curr->next;
i--;
Node *curr;
int i,count=0;
curr=head;
scanf("%d",&i);
while(curr->next!=NULL)
if(curr->entry==i)
count++;
curr=curr->next;
printf("11qqww");
if(curr->entry==i)
count++;
int i;
Node *curr;
curr=head;
scanf("%d",&i);
while(i>2)
curr=curr->next;
curr=curr->next;
curr=curr->next;
Node *p;
p=head1;
while(p->next!=NULL){
p=p->next;
p->next=head2;
return(head1);
Node *p,*curr;
p=(Node *)malloc(sizeof(Node));
p->next=NULL;
while(head1->next!=NULL||head2->next!=NULL)
if(head1->entry<head2->entry)
insertSorted(p,head1->entry);
head1=head1->next;
else
if(head1->entry<head2->entry)
insertSorted(p,head2->entry);
head2=head2->next;
if(head1->next==NULL)
while(head2->next!=NULL)
insertSorted(p,head2->entry);
head2=head2->next;
else
while(head1->next!=NULL)
insertSorted(p,head1->entry);
head1=head1->next;
return p;
Node *curr;
curr=head;
int i=0;
while(curr!=NULL)
i++;
printf("\n%d",curr->entry);
curr=curr->next;
return i;