google.com, pub-4617457846989927, DIRECT, f08c47fec0942fa0 Learn to enjoy every minute of your life.Only I can change my life.

Monday, April 6, 2015

C program in data structure for tree

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
 int info;
 struct node *llink,*rlink;
}*root=NULL;
void create();
void node(struct node *q);
void degree(struct node *q);
void leaf(struct node *q);
void interior(struct node *q);
void child(struct node *q);
int no,l,in,ch,p;
void main()
{
 int n;
 clrscr();
 while(1)
 {
  printf("\n **menu**");
  printf("\n 1.create a tree \n 2.count num of nodes");
  printf("\n 3.degree of tree \n 4.leaf nodes \n 5.interior nodes");
  printf("\n 6.childrens and parent \n 7.exit");
  printf("\n enter your choice:-\t");
  scanf("%d",&n);
  switch(n)
  {
   case 1 : create();
   break;
   case 2 : node(root);
   printf("\n\n total nodes are:-  %d",no);
   break;
   case 3 : degree(root);
   break;
   case 4 : leaf(root);
   printf("\n\n leaf nodes is:-  %d",l);
   break;
   case 5 : interior(root);
   printf("\n\n interior nodes are:-  %d",in);
   break;
   case 6 : child(root);
   printf("\n\n childrean is:- %d and parents is:-  %d",ch,p);
   break;
   case 7 : exit(0);
  }
 }
}
void create()
{
 struct node *temp,*q;
 int x,n,i;
 printf("\nEnter how many nodes you want:-");
 scanf("  %d",&n);
 for(i=0;i<n;i++)
 {
  temp=(struct node *)malloc(sizeof(struct node));
  if(temp==NULL)
  {
   printf("\n insufficient memory");
  }
  else
  {
   printf("\n enter number:- ");
   scanf(" %d",&x);
   temp->info=x;
   temp->llink=NULL;
   temp->rlink=NULL;
   if(root==NULL)
   {
    root=temp;
   }
   else
   {
    q=root;
    while(1)
    {
     if(temp->info==q->info)
     {
      printf("\n number is aleardy exist");
      break;
     }
     if(temp->info>q->info)
     {
      if(q->rlink==NULL)
      {
       q->rlink=temp;
       break;
      }
      q=q->rlink;
     }
     if(temp->info<q->info)
     {
      if(q->llink==NULL)
      {
       q->llink=temp;
       break;
      }
      q=q->llink;
     }
    }
   }
  }
 }
}
void node(struct node *q)
{
 if(q!=NULL)
 {
  node(q->llink);
  node(q->rlink);
  no=no+1;
 }
}
void degree(struct node *q)
{
 if(q!=NULL)
 {
  if(q->llink!=NULL&&q->rlink!=NULL)
  {
   printf("\n\n degree of %d node is:= 2",q->info);
  }
  if(q->llink!=NULL&&q->rlink==NULL)
  {
   printf("\n\n degree of %d node is:= 1",q->info);
  }
  if(q->llink==NULL&&q->rlink!=NULL)
  {
   printf("\n\n degree of %d node is:= 1",q->info);
  }
  if(q->llink==NULL&&q->rlink==NULL)
  {
   printf("\n\n degree of %d node is:= 0",q->info);
  }
  degree(q->llink);
  degree(q->rlink);
 }
}
void leaf(struct node *q)
{
 if(q!=NULL)
 {
  leaf(q->llink);
  leaf(q->rlink);
  if(q->llink==NULL||q->rlink==NULL)
  {
   l=l+1;
  }
 }
}
void interior(struct node *q)
{
 if(q!=NULL)
 {
  interior(q->llink);
  interior(q->rlink);
  if(q->llink!=NULL||q->rlink!=NULL)
  {
   in=in+1;
  }
 }
}
void child(struct node *q)
{
 if(q!=NULL)
 {
  child(q->llink);
  child(q->rlink);
  if(q->llink!=NULL||q->rlink!=NULL)
  {
   p=p+1;
  }
  if(q->llink==NULL||q->rlink==NULL)
  {
   ch=ch+1;
  }
 }
}

C program in data structure for mirror of a tree

#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<stdlib.h>
struct node
{
 int info;
 struct node *llink;
 struct node *rlink;
}*root=NULL;
void insert();
void preorder(struct node *q);
void mirror(struct node *q);
void main()
{
 int n;
 clrscr();
 while(1)
 {
  printf("\n **menu**");
  printf("\n 1.insert \n 2.preorder");
  printf("\n 3.mirror \n 4.exit");
  printf("\n enter your choice:-");
  scanf("%d",&n);
  switch(n)
  {
   case 1 : insert();
     break;
   case 2 : printf("\n\n our tree in preorder \n\n");
     preorder(root);
     break;
   case 3 :
     mirror(root);
     printf("\n\n mirror image is:-\n\n");
     preorder(root);
     break;
   case 4 : exit(0);
  }
 }
 getch();
}




void insert()
{
 struct node *temp,*q;
 int x,i,n;
 printf("\n\n enter how many node you want:=");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {

  temp=(struct node*)malloc(sizeof(struct node));
  if(temp==NULL)
  {
   printf("\n insufficient memory");
  }
  else
  {
   printf("\n\n enter number:-");
   scanf("%d",&x);
   temp->info=x;
   temp->llink=NULL;
   temp->rlink=NULL;
   if(root==NULL)
   {
    root=temp;
   }
   else
   {
    q=root;
    while(1)
    {
     if(temp->info==q->info)
     {
      printf("\n\n element already exist");
      break;
     }
     if(temp->info>q->info)
     {
      if(q->rlink==NULL)
      {
       q->rlink=temp;
       break;
      }
      q=q->rlink;
     }
     if(temp->info<q->info)
     {
      if(q->llink==NULL)
      {
       q->llink=temp;
       break;
      }
      q=q->llink;
     }//end of if
    }//end of while
   }//end of else2
  }//end of else1
 }//end of for loop
}
void preorder(struct node *q)
{
 if(q!=NULL)
 {
  printf(" %d->",q->info);
  preorder(q->llink);
  preorder(q->rlink);
 }
}
void mirror(struct node *q)
{
 struct node *temp1;
 if(q!=NULL)
 {
  mirror(q->llink);
  mirror(q->rlink);
  temp1=q->llink;
  q->llink=q->rlink;
  q->rlink=temp1;
 }
}

अच्छे विचार करे विचार

  पहचान की नुमाईश, जरा कम करें... जहाँ भी "मैं" लिखा है, उसे "हम" करें... हमारी "इच्छाओं" से ज़्यादा "सुन...