Skip to main content

Program to implement Circular Header Linked List in C


#include<stdio.h>
#include<conio.h>

int item,c=0;

struct node
{
 int num;
 struct node *next;
 }*start=NULL,*last=NULL;

 typedef struct node node;
 typedef struct node* nptr;
 int count();
 void ins_beg();
 void ins_bet();
 void ins_end();
 void del_beg();
 void del_bet();
 void del_end();
 void traverse();

 void main()
 {
 int num;
 clrscr();
 while(1)
 { clrscr();
 printf("\nÛÛÛÛÛ MENU ÛÛÛÛÛ");
 printf("\n1.INSERTION_BEG");
 printf("\n2.INSERTION_BET");
 printf("\n3.INSERTION_END");
 printf("\n4.DELETION_BEG");
 printf("\n5.DELETION_BET");
 printf("\n6.DELETION_END");
 printf("\n7.TRAVERSE");
 printf("\n8.EXIT");
 printf("\nENTER YOUR CHOICE: ");
 scanf("%d",&num);
 switch(num)
 {
  case 1:ins_beg();
break;
  case 2:ins_bet();
break;
  case 3:ins_end();
break;
  case 4:del_beg();
getch();
break;
  case 5:del_bet();
getch();
break;
  case 6:del_end();
getch();
break;
  case 7:traverse();
getch();
break;
  case 8:exit(0);
  default:printf("\nWRONG CHOICE");
  }
 }
}

int count()
 {
 int c=0;
 nptr p;
 p=start;
 while(p->next!=start)
 {
  p=p->next;
  c++;
  }
  c++;
  return c;
  }


void ins_end()
{
nptr p;
p=(nptr)malloc(sizeof(node));
printf("\nenter the info part: ");
scanf("%d",&item);
p->num=item;
if(start==NULL)
{
nptr q;
q=(nptr)malloc(sizeof(node));
q->next=p;
q->num=++c;
start=q;
last=p;
p->next=start;
}
else
{
last->next=p;
p->next=start;
start->num=++c;
last=p;
}
}

void ins_beg()
  {
  nptr p;
  p=(nptr)malloc(sizeof(node));
  printf("\nenter the info part: ");
  scanf("%d",&item);
  p->num=item;
  if(start==NULL)
  {
   nptr q;
   q=(nptr)malloc(sizeof(node));
   q->next=p;
   q->num=++c;
   start=q;
   last=p;
   p->next=start;
  }
  else
  {
   p->next=start->next;
   start->next=p;
   start->num=++c;
  }
 }

void del_beg()
{
if(start==NULL)
{
printf("\nunderflow");
return;
}
else
if(start->num==1)
{
nptr p;
p=start->next;
start=last=NULL;
printf("\ndeleted node is %d",p->num);
free(p);
}
else
{
nptr p;
p=start;
p=p->next;
start->next=p->next;
printf("\ndeleted node is %d",p->num);
free(p);
start->num=--c;
}
}

void del_end()
{
if(start==NULL)
{
printf("\nunderflow");
return;
}
else
if(start->num==1)
{
nptr p;
p=start->next;
start=last=NULL;
printf("\ndeleted node is %d",p->num);
free(p);
}
else
{
 nptr p,q;
 p=q=start;
 while(p->next!=start)
 {
 q=p;
 p=p->next;
 }
 q->next=start;
 last=q;
 printf("\ndeleted node is %d",p->num);
 free(p);
 start->num=--c;
 }
 }

 void ins_bet()
 {int item,i=1,pos,f;
    nptr p,q;
    p=(nptr)malloc(sizeof(node));
    printf("\n\nenter the position where you want to insert");
    scanf("%d",&pos);
    f=count();
    if(pos==0||pos==1||pos>f)
    {printf("\nINSERTION NOT POSSIBLE");
    }
    else
    { q=start;
      printf("\nenter the item: ");
      scanf("%d",&item);
      p->num=item;
      q=start->next;
      while(i<pos-1)
      { q=q->next;
i++;
      }
      p->next=q->next;
      q->next=p;
      start->num=++c;
    }
  }

 void del_bet()
 { int i=1,pos,f;
       nptr p,q;
     if(start==NULL)
     { printf("\n\nempty");
     }
     else
     {
     printf("\nenter position: ");
     scanf("%d",&pos);
     p=q=start->next;
     f=count();
     if(pos==0||pos==1||pos>=f)
      printf("\nDELETION NOT POSSIBLE");
     else
     {
      while(i<pos)
      {q=p;
       p=p->next;
       i++;
      }
      q->next=p->next;
      start->num=--c;
      printf("deleted node: %d",p->num);
      free(p);
     }
    }
   }

 void traverse()
 {
   nptr p;
   if(start==NULL)
   { printf("\nunderflow");
   }
   else
   {
    p=start;
    printf("\nHEADER NODE(num part) -> %d",c);
    printf("\n NODES ARE : ");
    p=start->next;
    while(p->next!=start)
    {
     printf(" %d",p->num);
     p=p->next;
    }
    printf(" %d",p->num);
   }
  }

Comments

Popular posts from this blog

Add JS to the bottom of the page in Drupal 7

How to add JS at bottom of a particular page in Drupal 7 Step 1: Get the page id. In case of front page "is_front"  Step 2: In template.php file of your theme add the below code : function illume_preprocess_page(&$variables) { if ($variables['is_front']) { drupal_add_js(path_to_theme().'/js/util.js', array('type' => 'file', 'scope' => 'footer')); drupal_add_js(path_to_theme().'/js/main.js', array('type' => 'file', 'scope' => 'footer')); drupal_add_js(path_to_theme().'/js/slideimage.js', array('type' => 'file', 'scope' => 'footer')); $variables['bottom_scripts'] = drupal_get_js(); } } This way you can add JS file using drupal_add_js() and define scope as footer. Step 3: Now you can use bottom_script variable to the page tpl file where you want to add JS print $bottom_scripts;

Main menu dropdown parent item clickable in Drupal 8 using Bootstrap 4

 Edit menu--main.html.twig template file {# /**  * @file  * Bootstrap Barrio's override to display a menu.  *  * Available variables:  * - menu_name: The machine name of the menu.  * - items: A nested list of menu items. Each menu item contains:  *   - attributes: HTML attributes for the menu item.  *   - below: The menu item child items.  *   - title: The menu link title.  *   - url: The menu link url, instance of \Drupal\Core\Url  *   - localized_options: Menu link localized options.  *   - is_expanded: TRUE if the link has visible children within the current  *     menu tree.  *   - is_collapsed: TRUE if the link has children within the current menu tree  *     that are not currently visible.  *   - in_active_trail: TRUE if the link is in the active trail.  */ #} {% import _self as menus...

Use Case Diagram for Online Book Store