Friday, June 28, 2013

Circular Linked List (Singly)

Circular Linked List (Singly)




                                                                                                       
#include<conio.h>
#include<alloc.h>
struct list{
 int data;
 struct list *next;
}*head=NULL,*temp,*node;
void infirst(void), inpos(void), inlast(void), delfront(void), delpos(void), dellast(void), display(void), count(void);
int num,pos;
char con;
void main()
{
         printf("\nMain Menu\n1.Insert at first\n2.Insert at specified position\n3.Insert at last\n4.Delete       first\n5.Delete specified position\n6.Delete from last\n7.Display\n8.Count number of nodes\n9.Exit\nEnter choice:");
 scanf("%d",&num);
 switch(num)
 {
       case 1:
                    infirst();
                    break;
      case 2:
                    inpos();
                    break;
     case 3:
                    inlast();
                    break;
    case 4:
                   delfront();
                   break;
   case 5:
                 delpos();
                 break;
  case 6:
                dellast();
                break;
  case 7:
               display();
               break;
  case 8:
               count();
               break;
  case 9:
               clrscr();
               exit();
  default:
              clrscr();
              puts("\nWRONG INPUT!!");
 }
 main();
}
void infirst(void)
{
 do
 {
  printf("\nEnter number:");
  scanf("%d",&num);
  temp=head;
  node=(struct list*)malloc(sizeof(struct list));
  node->data=num;
  node->next=head;
  temp 
  head=temp;
  printf("Continue [y/n]?:");
  con=getche();
 }while(con=='y'||con=='Y');
}
void inpos(void)
{
 do
 {
  num=0;
  temp=head;
  printf("Enter position to insert at:");
  scanf("%d",&pos);
  while(temp->next!=NULL)
  {
   num++;
   if(num==pos-1)
    break;
   temp=temp->next;
  }
  printf("Enter number:");
  scanf("%d",&num);
  node=(struct list*)malloc(sizeof(struct list));
  node->data=num;
  node->next=temp->next;
  temp->next=node;
  printf("Continue [y/n]?:");
  con=getche();
 } while(con=='y'||con=='Y');
}
void inlast(void)
{
 do
 {
  printf("\nEnter number:");
  scanf("%d",&num);
  temp=head;
  while(temp->next!=NULL)
   temp=temp->next;
  node=(struct list *)malloc(sizeof(struct list));
  node->data=num;
  node->next=NULL;
  temp->next=node;
  printf("\nContinue [y/n]?:");
  con=getche();
 } while(con=='y'||con=='Y');
}

void delfront(void)
{
 do{
  if(head==NULL)
  {
   clrscr();
   printf("List is empty!!");
   break;
  }
  else
  {
   temp=head;
   head=temp->next;
   free(temp);
   printf("Continue [y/n]?:");
   con=getche();
  }
 } while(con=='y'||con=='Y');
}
void delpos(void)
{
 do

  {
  if(head==NULL)
  {
   clrscr();
   printf("List is empty!!");
   break;
  }
  else
  {
   num=0;
   temp=head;
   printf("Enter position:");
   scanf("%d",&pos);
   while(temp->next!=NULL)
   {
    num++;
    if(num==pos-1)
    break;
    temp=temp->next;
   }
   node=temp->next->next;
   free(temp->next);
   temp->next=node;
   printf("Continue [y/n]?:");
   con=getche();
  }
 } while(con=='y'||con=='Y');
}
void dellast(void)
{
 do{
  if(head==NULL)
  {
   clrscr();
   printf("List is empty!!");
   break;
  }
  else
  {
   temp=head;
   while(temp->next!=NULL)
   {
    node=temp;
    temp=temp->next;
   }
   node->next=NULL;
   free(temp);
   printf("Continue [y/n]?:");
   con=getche();
  }
 } while(con=='y'||con=='Y');
}
void display(void)
{
 if(head==NULL)
 {
  clrscr();
  printf("List is empty!!");
 }
 else
 {
  clrscr();
  for(temp=head;temp!=NULL;temp=temp->next)
   printf("%d ",temp->data);
 }
}
void count(void)
{
 num=0;
 temp=head;
 while(temp!=NULL)
 {
  num++;
  temp=temp->next;
 }
 clrscr();
 printf("Total number of nodes=%d",num);
}


C program

que-write a program to input a number till user want of the end it should display the count of positive,negative & zero.





#include<stdio.h>
#include<conio.h>
 void main()
 {
int n;
int nc,zc,pc;
char ch='y';

clrscr();

pc=0;
zc=0;
nc=0;
while(ch=='y'||ch=='Y')
{
printf("\nEnter any no.");
scanf("%d",&n);

if(n<0)
     nc=nc+1;
if(n==0)
zc=zc+1;
if(n>0)
pc=pc+1;

printf("\nDo you want to continue?");
printf("\nif yes then press 'y'");
scanf("%c",&ch);

}
printf("\nno.of -ve no.=%d",nc);
printf("\nno. of zero=%d",zc);
printf("\nno. of+ve no.=%d",pc);
getch();
 }