SlideShare a Scribd company logo
1 of 16
Download to read offline
/* IMPLEMENTATION OF THE STACK USING ARRAYS */
/* STACK_A.C */
# include<stdio.h>
# include<string.h>
# include<ctype.h>
#include<conio.h>
# define size 3

int top = -1;
int flag = 0;
int stack[size];
void push(int *, int);
int pop(int *);
void display(int *);

/* Definition of the push function */
void push(int s[], int d)
{
       if(top ==(size-1))
               flag = 0;
       else
       {       flag = 1;
               ++top;
               s[top] = d;
       }
}

/* Definition of the pop function */
int pop(int s[])
{       int popped_element;
        if(top == -1)
        { popped_element = 0;
                 flag = 0;
        }
        else
        {        flag = 1;
                 popped_element = s[top];
                 --top;
        }
        return (popped_element);
}

/* Definition of the display function */
void display(int s[])
{      int i;
       if(top == -1)
               printf("n Stack is empty");
       else
       { for(i = top; i >= 0; --i)
                        printf("n %d", s[i] );
       }
}
/* Function main */
void main()
{      int data;
       char choice;
       int q = 0;
       int top = -1;
       clrscr();
       do
       {       printf(" n enter i to insert");
               printf(" n enter p to delete");
               printf(" n enter q to quit");
               printf("n enter your choice : ");
               do
               {       choice = getchar();
                       choice =tolower(choice);
               }while(strchr("ipq",choice)==NULL);

               switch(choice)
               {
               case 'i' : printf("n Input the element to push:");
                         scanf("%d", &data);
                         push(stack, data);
                         if(flag)
                         {        printf("n After inserting ");
                                  display(stack);
                                  if(top == (size-1))
                                          printf("n Stack is full");
                         }
                         else printf("n Stack overflow after pushing");
                         break;

              case 'p' : data = pop(stack);
                       if(flag)
                       {        printf("n Data is popped: %d", data);
                                printf("n Rest data in stack is as follows:n");
                                display(stack);
                       }
                       else printf("n Stack underflow" );
                       break;
              case 'q': q = 1;
              }
       } while(!q);
}
/* THIS PROGRAM DEMONSTRATES THE STACK OPERATIONS USING OOPS-
CLASS STACK*/
/* cstack.cpp */

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
 class stack
  { int stack[30];
    int top,n;
    public:
     stack()
     { top=-1; //indicates stack is empty
          n=5;
     }
     void push(int);
     int pop();
     void display();
   };

 void stack::push(int x)
 { if(top<n)
       { top++;
         stack[top]=x;
       }
   else cout<<"n the stack is full";
 }

 int stack::pop()
  { int v=-99;
     if(top>=0)
          { v=stack[top];
            top--;
          }
    return v;
   }
  void stack::display()
   { int i;
         if(top>=0)
           { for(i=top;i>=0;i--)
              cout<<stack[i]<<" ";
           }
         else cout<<"n stack is empty";
    }
  void main()
   { stack s;
     char ch; int x;
     clrscr();
         do
          { cout<<"n enter i to insert an element";
            cout<<"n enter d to view the contents";
            cout<<"n enter r to remove an element";
cout<<"n enter q to quit";
         cout<<"n enter your choice : ";
         cin>>ch;
          switch(ch)
           { case 'i': cout<<"n enter the value to insert";
                          cin>>x;
                          s.push(x);
                          break;
             case 'd': cout<<"n";
                          s.display();
                          break;
             case 'r': x=s.pop();
                          if(x==-99) cout<<"n stack is empty";
                          else cout<<" n the element removed is "<<x;
                          break;
            }
        }while(ch!='q');
  }

OUTPUT:

enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : r

stack is empty
enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : i

enter the value to insert : 1

enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : i

enter the value to insert : 2

enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : i

enter the value to insert : -1
enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : d

-1 2 1
 enter the value to insert : 2

enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : i

enter the value to insert : -1

enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : d

-1 2 1
 enter i to insert an element
 enter d to view the contents
 enter r to remove an element
 enter q to quit
 enter your choice : r

the element removed is -1
enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : r

the element removed is 2
enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : r

the element removed is 1
enter i to insert an element
enter d to view the contents
enter r to remove an element
enter q to quit
enter your choice : r

stack is empty
/*THE FOLLOWING PROGRAM CONVERTS ANY infix EXPRESSION TO POSTFIX
postfix.c */

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>

int precedence(char op)
{
  switch(op)
  {
    case '-':return 1;
    case '+':return 1;
    case '*':return 2;
    case '/':return 2;
    case '$':return 3;
    case '(':return 0;
  }
return -1;
}

 void push(char a[],int *top,char ch)
 { a[*top]=ch;
   (*top)++;
 }

 char pop(char a[],int *top)
  { *top=*top-1;
    return a[*top];
  }

 void main()
 {
   int top=0,i=0,j=0,k,l,length=0;
   char stack[50],infix[50],postfix[50];
   char ch;
   clrscr();
   cout<<"Enter the infix expression : n";
   scanf("%s",infix);
   length=strlen(infix);
     for(i=0;i<length;i++)
      {
        if(infix[i]=='(')
        push(stack,&top,infix[i]);

        if(isalpha(infix[i]))
             { postfix[j]=infix[i];
               j++;
             }
if(infix[i]==')')
          { while(stack[top-1]!='(')
               { postfix[j]=pop(stack,&top);
                    j++;
               }
         pop(stack,&top);
      }
    if(infix[i]=='+'||infix[i]=='-'||infix[i]=='/'||infix[i]=='*'||infix[i]=='$')
        { if(precedence(stack[top-1])<precedence(infix[i]))
           push(stack,&top,infix[i]);

         else
           { while(precedence(stack[top-1])>=precedence(infix[i]))
                { postfix[j]=pop(stack,&top);
                   j++;
                 }
           push(stack,&top,infix[i]);
           }
         }
}
   while(top!=0)
      { postfix[j]=pop(stack,&top);
        j++;
      }
   cout<<"nThe postfix expression is :n";
  for(k=0;k<j;k++)
   cout<<postfix[k];
getch();
}


OUTPUT:



Enter the infix expression :
(((X*Y-A*B)-D/F)+A)*B

The postfix expression is :
XY*AB*-DF/-A+B*
do you want to continue (y/n) : y
Enter the infix expression :
A*B-P/(Q*(A-C+P*D)/B)

The postfix expression is :
AB*PQAC-PD*+*B//-
do you want to continue (y/n) : n
/* INSERTION AND DELETION IN A QUEUE ARRAY IMPLEMENTATION */
/* queue_a.c */

# include<stdio.h>
# include<string.h>
# include<ctype.h>
# include<stdlib.h>
# define size 5

int ch;
int q[size];
int rear = 0;
int front = 0;

void Insert_queue();
void Delete_queue();
void Display_queue();

/* Function to create queue */
void Insert_queue()
{      printf("n Input the element :");
       scanf("%d", &ch);
       if(rear < size)
          { rear ++;
               q[rear] = ch ;
               if(front == 0)
                       front = 1;
          }
       else printf("n Queue is overflow");
}

/* Function to perform delete operation */
void Delete_queue()
{      if (front == 0)
          {    printf("n Underflow");
               return ;
          }
       else
       {       ch = q[front];
               printf("n Element deleted : %d", ch);
       }
       if(front == rear)
       {       front = 0;
               rear = 0;
       }
       else front = front + 1;
}
/* Output function */
void Display_queue() //char q[])
{      int i;
       if (front == 0)
               return;
       for(i = front ; i <= rear; i++)
               printf(" %d ", q[i]);
}

/* Function main */
void main()
{
       int k = 0;
       char choice;
       clrscr();
       do
       {       printf("nInsert->i Delete->d Quit->q:");
               printf("nInput the choice : ");
               do
               { choice = getchar();
                  choice = tolower(choice);
               }while(strchr("idq",choice)==NULL);
        switch(choice)
               {
               case 'i' : Insert_queue();
                           printf("n Queue after inserting ");
                           Display_queue();
                           break;

               case 'd' : Delete_queue();
                          printf("n Queue after deleting:n");
                          Display_queue();
                          break;
               case 'q': k = 1;
               }
        } while(!k);
}
/* THIS PROGRAM DEMONSTRATES OPERATIONS ON A CIRCULAR QUEUE
USING OOPS-CLASS QUEUE –cqueue.cpp*/

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
 class queue
  { int q[30]; //queue declaration
    int f,r ;
    int n;
    public:
     queue() //constructor
     { f=r=0; //indicates queue is empty
          n=5;
     }
     void insert(int);
     int delet();
     void display();
   };

 void queue::insert(int x)
  { if((r+1)%n==f)
          cout<<"n the queue is full";
    else
         { r=(r+1)%n;
           q[r]=x;
         }
  }
 int queue::delet()
  { int v=-99;
     if(f!=r)
          { f=(f+1)%n;
            v=q[f];
          }
     return v;
   }
  void queue::display()
   { int i;
         if(f!=r)
           { i=f;
             while(i!=r)
             { i=(i+1)%n;
               cout<<q[i]<<" ";
             }
           }
         else cout<<"n queue is empty";
    }
  void main()
   { queue s;
     char ch;int x;
     clrscr();
         do
{ cout<<"n enter i to insert an elemnt";
         cout<<"n enter d to view the contents";
         cout<<"n enter r to remove an elemnt";
         cout<<"n enter q to quit";
         cout<<"n enter your choice : ";
         cin>>ch;
          switch(ch)
           { case 'i': cout<<"n enter the value to insert";
                          cin>>x;
                          s.insert(x);
                          break;
             case 'd': cout<<"n";
                          s.display();
                          break;
             case 'r': x=s.delet();
                          if(x==-99) cout<<"n queue is empty";
                          else cout<<" n the element removed is "<<x;
                          break;
            }
        }while(ch!='q');
  }

OUTPUT :

assume size of queue is 3 integers
Insert->i Delete->d Quit->q:
Input the choice : i

Input the element :1

Queue after inserting 1
Insert->i Delete->d Quit->q:
Input the choice : i

Input the element :2

Queue after inserting 1 2
Insert->i Delete->d Quit->q:
Input the choice : d

Element deleted : 1
Queue after deleting: 2
Insert->i Delete->d Quit->q:
Input the choice : d

Element deleted : 2
 Queue after deleting:
queue is empty

Insert->i Delete->d Quit->q:
Input the choice : q
/* THIS PROGRAM DEMONSTRATES THE CREATION OF A SIMPLE LINKED LIST
INCORPORATING ALL FUNCTIONS OF INSERTION AND DELETION AT THE
BEGINNING , END AND AFTER ANY PARTICULAR NODE WITH DISPLAY FEATURES */
/* LINKLIST.C */

# include <stdio.h>
# include <malloc.h>

struct link
 { int info;
   struct link *next;
 };

int i,number;
struct link start, *previous, *new1;

void insertiona(struct link *);
void insertionb(struct link *);
void create_list(struct link *);
void insertione(struct link *);
void display(struct link *);
void delete_nodef(struct link *);
void delete_node(struct link *);
void delete_nodel(struct link *);

/* Function to create a linked list */
void create_list(struct link *node)
{      char ch;
       start.next = NULL; /* Empty list */

        node = &start; /* Point to the start of the list */
        i = 0;
        printf("n Input choice n for break: ");
        ch = getchar();
        while(ch != 'n')
        {
                node->next = (struct link* ) malloc(sizeof(struct link));
                node = node->next;
                printf("n Input the node: %d: ", i+1);
                scanf("%d", &node->info);
                node->next = NULL;
                fflush(stdin);
                printf("n Input choice n for break: ");
                ch = getchar();
                i++;
        }
        printf("n Total nodes = %d", i);
}

/* Inserting a node after a particular node*/
void insertiona(struct link *node)
{     int ins_node,x;
node = start.next;
       previous = &start;
       printf("n Input value of the nodeafter which you want to insert:");
       scanf("%d", &ins_node);

       while((node->info!=ins_node)&&(node!=NULL))
       node=node->next;
        if(node!=NULL)
              {        new1 = (struct link* ) malloc(sizeof(struct link));
                       printf("n enter the new value to be inserted : ");
                       scanf(" %d",&new1->info);
                        new1->next = node->next;
                       node->next = new1;
              }
        else
                printf("n insertion is not possible");


}

/* Display the list */
void display(struct link *node)
{     node = start.next;
        while (node)
         { printf(" %d ", node->info);
           node = node->next;
           printf(" ");
         }
}

void main()
{    int c;
       struct link *node = (struct link *) malloc(sizeof(struct link));
       clrscr();
       do
        { printf("n enter 1 to create the list");
         printf("n enter 2 to insert a node at the beginning");
         printf("n enter 3 to insert a node anywhere");
         printf("n enter 4 to append a node ");
         printf("n enter 5 to display the list");
         printf("n enter 6 to remove a node from beginning");
         printf("n enter 7 to remove a node anywhere");
         printf("n enter 8 to remove a node from the end");
         printf("n enter 9 to quit");
         printf("n enter your choice : ");
         scanf("%d",&c);
           switch(c)
            { case 1 : create_list(node);
                         printf("n Created list is as follows:n");
                         display(node);
                         break;
                case 2 : insertionb(node);
break;
                case 3 : insertiona(node);
                         break;
                case 4 : display(node);
                         insertione(node);
                         break;
                case 5 : display(node);
                         break;
                case 6 : delete_nodef(node);
                         break;
                case 7 : delete_node(node);
                         break;
                case 8 : delete_nodel(node);
                         break;
                case 9 : exit(0);
             }
         }while((c>=1)&&(c<=9));
    getch();
}

/* Inserting a node at the beginning*/

void insertionb(struct link *node)
{     node = start.next;
        previous = &start;
        new1 = (struct link* ) malloc(sizeof(struct link));
        new1->next = node ;
        previous->next = new1;
        printf("n Input the fisrt node value: ");
        scanf("%d", &new1->info);
}

/* Inserting a node at the end */
void insertione(struct link *node)
{       node = start.next;
        previous = &start;
        if(node==NULL)
           { printf("n the list is empty to create return ");
             return;
           }
        else
         { while(node->next!=NULL)
                 node = node->next;
          new1 = (struct link* ) malloc(sizeof(struct link));
          printf("n Input the value to be inserted at the end : ");
          scanf(" %d",&new1->info);
          node->next=new1;
          new1->next=NULL;
        }
}

/* Removing the first node */
void delete_nodef(struct link*node)
{    node = start.next;
       previous = &start;
         if (node == NULL)
                printf("n Under flow");
         else
           {    previous->next = node->next;
                free(node);
           }
}

/* Removing a node when information is known*/
void delete_node(struct link *node)
{      int node_number = 1;
       int del_node;

       node = start.next;
       previous = &start;
       printf("n Input information of a node you want to delete: ");
       scanf("%d", &del_node);
       while(node)
       { if(node->info == del_node)
               {     printf("n Position of the information in the list is : %d", node_number);
                       previous->next = node->next;
                       free(node);
                       break ;
               }
               else
               {     node = node->next;
                       previous = previous->next;
               }
               node_number++;
       }
}

/* Removing the last node */
void delete_nodel(struct link *node)
{      int node_number = 0;
       node = start.next;
       previous = &start;

       if (node == NULL)
          printf("n Underflow");
       else
         while(node)
                { node = node->next;
                  previous = previous->next;
                  node_number ++;
                }
       node = start.next;
       previous = &start;
while(node_number != 1)
    {      node = node->next;
           previous = previous->next;
           node_number --;
    }
    if(node_number == 1)
    {      previous->next = node->next;
           free(node);
    }
}

More Related Content

What's hot

Basic c programs updated on 31.8.2020
Basic c programs updated on 31.8.2020Basic c programs updated on 31.8.2020
Basic c programs updated on 31.8.2020vrgokila
 
Data Structure using C
Data Structure using CData Structure using C
Data Structure using CBilal Mirza
 
Double linked list
Double linked listDouble linked list
Double linked listSayantan Sur
 
design and analysis of algorithm Lab files
design and analysis of algorithm Lab filesdesign and analysis of algorithm Lab files
design and analysis of algorithm Lab filesNitesh Dubey
 
C programming array & shorting
C  programming array & shortingC  programming array & shorting
C programming array & shortingargusacademy
 
Data Structures Using C Practical File
Data Structures Using C Practical File Data Structures Using C Practical File
Data Structures Using C Practical File Rahul Chugh
 
Double linked list
Double linked listDouble linked list
Double linked listraviahuja11
 
Data Structures Practical File
Data Structures Practical File Data Structures Practical File
Data Structures Practical File Harjinder Singh
 
Data Structure in C Programming Language
Data Structure in C Programming LanguageData Structure in C Programming Language
Data Structure in C Programming LanguageArkadeep Dey
 
Circular linked list
Circular linked listCircular linked list
Circular linked listSayantan Sur
 
Single linked list
Single linked listSingle linked list
Single linked listSayantan Sur
 
Sorting programs
Sorting programsSorting programs
Sorting programsVarun Garg
 

What's hot (20)

Basic c programs updated on 31.8.2020
Basic c programs updated on 31.8.2020Basic c programs updated on 31.8.2020
Basic c programs updated on 31.8.2020
 
Struct examples
Struct examplesStruct examples
Struct examples
 
Data Structure using C
Data Structure using CData Structure using C
Data Structure using C
 
C programms
C programmsC programms
C programms
 
C lab manaual
C lab manaualC lab manaual
C lab manaual
 
Double linked list
Double linked listDouble linked list
Double linked list
 
design and analysis of algorithm Lab files
design and analysis of algorithm Lab filesdesign and analysis of algorithm Lab files
design and analysis of algorithm Lab files
 
C programming array & shorting
C  programming array & shortingC  programming array & shorting
C programming array & shorting
 
C PROGRAMS
C PROGRAMSC PROGRAMS
C PROGRAMS
 
Data Structures Using C Practical File
Data Structures Using C Practical File Data Structures Using C Practical File
Data Structures Using C Practical File
 
Double linked list
Double linked listDouble linked list
Double linked list
 
Data Structures Practical File
Data Structures Practical File Data Structures Practical File
Data Structures Practical File
 
Blocks+gcd入門
Blocks+gcd入門Blocks+gcd入門
Blocks+gcd入門
 
Data Structure in C Programming Language
Data Structure in C Programming LanguageData Structure in C Programming Language
Data Structure in C Programming Language
 
Circular linked list
Circular linked listCircular linked list
Circular linked list
 
Single linked list
Single linked listSingle linked list
Single linked list
 
C Prog - Array
C Prog - ArrayC Prog - Array
C Prog - Array
 
Graphics point clipping c program
Graphics point clipping c programGraphics point clipping c program
Graphics point clipping c program
 
Binary tree
Binary treeBinary tree
Binary tree
 
Sorting programs
Sorting programsSorting programs
Sorting programs
 

Viewers also liked

Going mobile - A Technical Job Prep for Vassar Students
Going mobile - A Technical Job Prep for Vassar StudentsGoing mobile - A Technical Job Prep for Vassar Students
Going mobile - A Technical Job Prep for Vassar Studentsbryan costanich
 
Where we live in atlanta georgia usa
Where we live in atlanta georgia usaWhere we live in atlanta georgia usa
Where we live in atlanta georgia usarochesterdavisacademy
 
Running SagePFW in a Private Cloud
Running SagePFW in a Private CloudRunning SagePFW in a Private Cloud
Running SagePFW in a Private CloudVertical Solutions
 
FRx is Dead: Using SagePFW Intelligence
FRx is Dead: Using SagePFW IntelligenceFRx is Dead: Using SagePFW Intelligence
FRx is Dead: Using SagePFW IntelligenceVertical Solutions
 
Cross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinCross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with Xamarinbryan costanich
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarinbryan costanich
 
Advanced android app lifecycle + Patterns
Advanced android app lifecycle + PatternsAdvanced android app lifecycle + Patterns
Advanced android app lifecycle + Patternsbryan costanich
 
Poetry Dedication Project
Poetry Dedication ProjectPoetry Dedication Project
Poetry Dedication ProjectJon_C
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studiobryan costanich
 
Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...
Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...
Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...Miroslav Vereš
 
Lifestyle workbook
Lifestyle workbookLifestyle workbook
Lifestyle workbookKjnO8484
 
Miroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentacia
Miroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentaciaMiroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentacia
Miroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentaciaMiroslav Vereš
 

Viewers also liked (16)

C# rocks
C# rocksC# rocks
C# rocks
 
Photography Portfolio
Photography PortfolioPhotography Portfolio
Photography Portfolio
 
Going mobile - A Technical Job Prep for Vassar Students
Going mobile - A Technical Job Prep for Vassar StudentsGoing mobile - A Technical Job Prep for Vassar Students
Going mobile - A Technical Job Prep for Vassar Students
 
Where we live in atlanta georgia usa
Where we live in atlanta georgia usaWhere we live in atlanta georgia usa
Where we live in atlanta georgia usa
 
All about me
All about meAll about me
All about me
 
Running SagePFW in a Private Cloud
Running SagePFW in a Private CloudRunning SagePFW in a Private Cloud
Running SagePFW in a Private Cloud
 
Metallic bonding
Metallic bondingMetallic bonding
Metallic bonding
 
FRx is Dead: Using SagePFW Intelligence
FRx is Dead: Using SagePFW IntelligenceFRx is Dead: Using SagePFW Intelligence
FRx is Dead: Using SagePFW Intelligence
 
Cross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinCross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with Xamarin
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarin
 
Advanced android app lifecycle + Patterns
Advanced android app lifecycle + PatternsAdvanced android app lifecycle + Patterns
Advanced android app lifecycle + Patterns
 
Poetry Dedication Project
Poetry Dedication ProjectPoetry Dedication Project
Poetry Dedication Project
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studio
 
Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...
Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...
Vlnová analýza časových řad zesílení a expanze plantážního zemědělství v braz...
 
Lifestyle workbook
Lifestyle workbookLifestyle workbook
Lifestyle workbook
 
Miroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentacia
Miroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentaciaMiroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentacia
Miroslav veres -_monitorovanie_poziarov_a_dpz_-_prezentacia
 

Similar to Datastructures asignment (20)

week-18x
week-18xweek-18x
week-18x
 
VTU Data Structures Lab Manual
VTU Data Structures Lab ManualVTU Data Structures Lab Manual
VTU Data Structures Lab Manual
 
Solutionsfor co2 C Programs for data structures
Solutionsfor co2 C Programs for data structuresSolutionsfor co2 C Programs for data structures
Solutionsfor co2 C Programs for data structures
 
week-16x
week-16xweek-16x
week-16x
 
stack.pptx
stack.pptxstack.pptx
stack.pptx
 
week-15x
week-15xweek-15x
week-15x
 
Artificial intelligence
Artificial intelligenceArtificial intelligence
Artificial intelligence
 
Qprgs
QprgsQprgs
Qprgs
 
Stack using Array
Stack using ArrayStack using Array
Stack using Array
 
Daapracticals 111105084852-phpapp02
Daapracticals 111105084852-phpapp02Daapracticals 111105084852-phpapp02
Daapracticals 111105084852-phpapp02
 
#includeiostream#includecctypeusing namespace std;cl.docx
#includeiostream#includecctypeusing namespace std;cl.docx#includeiostream#includecctypeusing namespace std;cl.docx
#includeiostream#includecctypeusing namespace std;cl.docx
 
DATA STRUCTURE USING C & C++
DATA STRUCTURE USING C & C++DATA STRUCTURE USING C & C++
DATA STRUCTURE USING C & C++
 
DSU C&C++ Practical File Diploma
DSU C&C++ Practical File DiplomaDSU C&C++ Practical File Diploma
DSU C&C++ Practical File Diploma
 
data structure and algorithm.pdf
data structure and algorithm.pdfdata structure and algorithm.pdf
data structure and algorithm.pdf
 
C basics
C basicsC basics
C basics
 
Stack array
Stack arrayStack array
Stack array
 
Programs
ProgramsPrograms
Programs
 
CS8391-Data Structures Unit 2
CS8391-Data Structures Unit 2CS8391-Data Structures Unit 2
CS8391-Data Structures Unit 2
 
DS- Stack ADT
DS- Stack ADTDS- Stack ADT
DS- Stack ADT
 
week-14x
week-14xweek-14x
week-14x
 

Recently uploaded

Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersChitralekhaTherkar
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 

Recently uploaded (20)

Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 

Datastructures asignment

  • 1. /* IMPLEMENTATION OF THE STACK USING ARRAYS */ /* STACK_A.C */ # include<stdio.h> # include<string.h> # include<ctype.h> #include<conio.h> # define size 3 int top = -1; int flag = 0; int stack[size]; void push(int *, int); int pop(int *); void display(int *); /* Definition of the push function */ void push(int s[], int d) { if(top ==(size-1)) flag = 0; else { flag = 1; ++top; s[top] = d; } } /* Definition of the pop function */ int pop(int s[]) { int popped_element; if(top == -1) { popped_element = 0; flag = 0; } else { flag = 1; popped_element = s[top]; --top; } return (popped_element); } /* Definition of the display function */ void display(int s[]) { int i; if(top == -1) printf("n Stack is empty"); else { for(i = top; i >= 0; --i) printf("n %d", s[i] ); } }
  • 2. /* Function main */ void main() { int data; char choice; int q = 0; int top = -1; clrscr(); do { printf(" n enter i to insert"); printf(" n enter p to delete"); printf(" n enter q to quit"); printf("n enter your choice : "); do { choice = getchar(); choice =tolower(choice); }while(strchr("ipq",choice)==NULL); switch(choice) { case 'i' : printf("n Input the element to push:"); scanf("%d", &data); push(stack, data); if(flag) { printf("n After inserting "); display(stack); if(top == (size-1)) printf("n Stack is full"); } else printf("n Stack overflow after pushing"); break; case 'p' : data = pop(stack); if(flag) { printf("n Data is popped: %d", data); printf("n Rest data in stack is as follows:n"); display(stack); } else printf("n Stack underflow" ); break; case 'q': q = 1; } } while(!q); }
  • 3. /* THIS PROGRAM DEMONSTRATES THE STACK OPERATIONS USING OOPS- CLASS STACK*/ /* cstack.cpp */ #include<iostream.h> #include<conio.h> #include<stdio.h> class stack { int stack[30]; int top,n; public: stack() { top=-1; //indicates stack is empty n=5; } void push(int); int pop(); void display(); }; void stack::push(int x) { if(top<n) { top++; stack[top]=x; } else cout<<"n the stack is full"; } int stack::pop() { int v=-99; if(top>=0) { v=stack[top]; top--; } return v; } void stack::display() { int i; if(top>=0) { for(i=top;i>=0;i--) cout<<stack[i]<<" "; } else cout<<"n stack is empty"; } void main() { stack s; char ch; int x; clrscr(); do { cout<<"n enter i to insert an element"; cout<<"n enter d to view the contents"; cout<<"n enter r to remove an element";
  • 4. cout<<"n enter q to quit"; cout<<"n enter your choice : "; cin>>ch; switch(ch) { case 'i': cout<<"n enter the value to insert"; cin>>x; s.push(x); break; case 'd': cout<<"n"; s.display(); break; case 'r': x=s.pop(); if(x==-99) cout<<"n stack is empty"; else cout<<" n the element removed is "<<x; break; } }while(ch!='q'); } OUTPUT: enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : r stack is empty enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : i enter the value to insert : 1 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : i enter the value to insert : 2 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : i enter the value to insert : -1
  • 5. enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : d -1 2 1 enter the value to insert : 2 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : i enter the value to insert : -1 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : d -1 2 1 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : r the element removed is -1 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : r the element removed is 2 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : r the element removed is 1 enter i to insert an element enter d to view the contents enter r to remove an element enter q to quit enter your choice : r stack is empty
  • 6. /*THE FOLLOWING PROGRAM CONVERTS ANY infix EXPRESSION TO POSTFIX postfix.c */ #include<iostream.h> #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<ctype.h> #include<string.h> int precedence(char op) { switch(op) { case '-':return 1; case '+':return 1; case '*':return 2; case '/':return 2; case '$':return 3; case '(':return 0; } return -1; } void push(char a[],int *top,char ch) { a[*top]=ch; (*top)++; } char pop(char a[],int *top) { *top=*top-1; return a[*top]; } void main() { int top=0,i=0,j=0,k,l,length=0; char stack[50],infix[50],postfix[50]; char ch; clrscr(); cout<<"Enter the infix expression : n"; scanf("%s",infix); length=strlen(infix); for(i=0;i<length;i++) { if(infix[i]=='(') push(stack,&top,infix[i]); if(isalpha(infix[i])) { postfix[j]=infix[i]; j++; }
  • 7. if(infix[i]==')') { while(stack[top-1]!='(') { postfix[j]=pop(stack,&top); j++; } pop(stack,&top); } if(infix[i]=='+'||infix[i]=='-'||infix[i]=='/'||infix[i]=='*'||infix[i]=='$') { if(precedence(stack[top-1])<precedence(infix[i])) push(stack,&top,infix[i]); else { while(precedence(stack[top-1])>=precedence(infix[i])) { postfix[j]=pop(stack,&top); j++; } push(stack,&top,infix[i]); } } } while(top!=0) { postfix[j]=pop(stack,&top); j++; } cout<<"nThe postfix expression is :n"; for(k=0;k<j;k++) cout<<postfix[k]; getch(); } OUTPUT: Enter the infix expression : (((X*Y-A*B)-D/F)+A)*B The postfix expression is : XY*AB*-DF/-A+B* do you want to continue (y/n) : y Enter the infix expression : A*B-P/(Q*(A-C+P*D)/B) The postfix expression is : AB*PQAC-PD*+*B//- do you want to continue (y/n) : n
  • 8. /* INSERTION AND DELETION IN A QUEUE ARRAY IMPLEMENTATION */ /* queue_a.c */ # include<stdio.h> # include<string.h> # include<ctype.h> # include<stdlib.h> # define size 5 int ch; int q[size]; int rear = 0; int front = 0; void Insert_queue(); void Delete_queue(); void Display_queue(); /* Function to create queue */ void Insert_queue() { printf("n Input the element :"); scanf("%d", &ch); if(rear < size) { rear ++; q[rear] = ch ; if(front == 0) front = 1; } else printf("n Queue is overflow"); } /* Function to perform delete operation */ void Delete_queue() { if (front == 0) { printf("n Underflow"); return ; } else { ch = q[front]; printf("n Element deleted : %d", ch); } if(front == rear) { front = 0; rear = 0; } else front = front + 1; }
  • 9. /* Output function */ void Display_queue() //char q[]) { int i; if (front == 0) return; for(i = front ; i <= rear; i++) printf(" %d ", q[i]); } /* Function main */ void main() { int k = 0; char choice; clrscr(); do { printf("nInsert->i Delete->d Quit->q:"); printf("nInput the choice : "); do { choice = getchar(); choice = tolower(choice); }while(strchr("idq",choice)==NULL); switch(choice) { case 'i' : Insert_queue(); printf("n Queue after inserting "); Display_queue(); break; case 'd' : Delete_queue(); printf("n Queue after deleting:n"); Display_queue(); break; case 'q': k = 1; } } while(!k); }
  • 10. /* THIS PROGRAM DEMONSTRATES OPERATIONS ON A CIRCULAR QUEUE USING OOPS-CLASS QUEUE –cqueue.cpp*/ #include<iostream.h> #include<conio.h> #include<stdio.h> class queue { int q[30]; //queue declaration int f,r ; int n; public: queue() //constructor { f=r=0; //indicates queue is empty n=5; } void insert(int); int delet(); void display(); }; void queue::insert(int x) { if((r+1)%n==f) cout<<"n the queue is full"; else { r=(r+1)%n; q[r]=x; } } int queue::delet() { int v=-99; if(f!=r) { f=(f+1)%n; v=q[f]; } return v; } void queue::display() { int i; if(f!=r) { i=f; while(i!=r) { i=(i+1)%n; cout<<q[i]<<" "; } } else cout<<"n queue is empty"; } void main() { queue s; char ch;int x; clrscr(); do
  • 11. { cout<<"n enter i to insert an elemnt"; cout<<"n enter d to view the contents"; cout<<"n enter r to remove an elemnt"; cout<<"n enter q to quit"; cout<<"n enter your choice : "; cin>>ch; switch(ch) { case 'i': cout<<"n enter the value to insert"; cin>>x; s.insert(x); break; case 'd': cout<<"n"; s.display(); break; case 'r': x=s.delet(); if(x==-99) cout<<"n queue is empty"; else cout<<" n the element removed is "<<x; break; } }while(ch!='q'); } OUTPUT : assume size of queue is 3 integers Insert->i Delete->d Quit->q: Input the choice : i Input the element :1 Queue after inserting 1 Insert->i Delete->d Quit->q: Input the choice : i Input the element :2 Queue after inserting 1 2 Insert->i Delete->d Quit->q: Input the choice : d Element deleted : 1 Queue after deleting: 2 Insert->i Delete->d Quit->q: Input the choice : d Element deleted : 2 Queue after deleting: queue is empty Insert->i Delete->d Quit->q: Input the choice : q
  • 12. /* THIS PROGRAM DEMONSTRATES THE CREATION OF A SIMPLE LINKED LIST INCORPORATING ALL FUNCTIONS OF INSERTION AND DELETION AT THE BEGINNING , END AND AFTER ANY PARTICULAR NODE WITH DISPLAY FEATURES */ /* LINKLIST.C */ # include <stdio.h> # include <malloc.h> struct link { int info; struct link *next; }; int i,number; struct link start, *previous, *new1; void insertiona(struct link *); void insertionb(struct link *); void create_list(struct link *); void insertione(struct link *); void display(struct link *); void delete_nodef(struct link *); void delete_node(struct link *); void delete_nodel(struct link *); /* Function to create a linked list */ void create_list(struct link *node) { char ch; start.next = NULL; /* Empty list */ node = &start; /* Point to the start of the list */ i = 0; printf("n Input choice n for break: "); ch = getchar(); while(ch != 'n') { node->next = (struct link* ) malloc(sizeof(struct link)); node = node->next; printf("n Input the node: %d: ", i+1); scanf("%d", &node->info); node->next = NULL; fflush(stdin); printf("n Input choice n for break: "); ch = getchar(); i++; } printf("n Total nodes = %d", i); } /* Inserting a node after a particular node*/ void insertiona(struct link *node) { int ins_node,x;
  • 13. node = start.next; previous = &start; printf("n Input value of the nodeafter which you want to insert:"); scanf("%d", &ins_node); while((node->info!=ins_node)&&(node!=NULL)) node=node->next; if(node!=NULL) { new1 = (struct link* ) malloc(sizeof(struct link)); printf("n enter the new value to be inserted : "); scanf(" %d",&new1->info); new1->next = node->next; node->next = new1; } else printf("n insertion is not possible"); } /* Display the list */ void display(struct link *node) { node = start.next; while (node) { printf(" %d ", node->info); node = node->next; printf(" "); } } void main() { int c; struct link *node = (struct link *) malloc(sizeof(struct link)); clrscr(); do { printf("n enter 1 to create the list"); printf("n enter 2 to insert a node at the beginning"); printf("n enter 3 to insert a node anywhere"); printf("n enter 4 to append a node "); printf("n enter 5 to display the list"); printf("n enter 6 to remove a node from beginning"); printf("n enter 7 to remove a node anywhere"); printf("n enter 8 to remove a node from the end"); printf("n enter 9 to quit"); printf("n enter your choice : "); scanf("%d",&c); switch(c) { case 1 : create_list(node); printf("n Created list is as follows:n"); display(node); break; case 2 : insertionb(node);
  • 14. break; case 3 : insertiona(node); break; case 4 : display(node); insertione(node); break; case 5 : display(node); break; case 6 : delete_nodef(node); break; case 7 : delete_node(node); break; case 8 : delete_nodel(node); break; case 9 : exit(0); } }while((c>=1)&&(c<=9)); getch(); } /* Inserting a node at the beginning*/ void insertionb(struct link *node) { node = start.next; previous = &start; new1 = (struct link* ) malloc(sizeof(struct link)); new1->next = node ; previous->next = new1; printf("n Input the fisrt node value: "); scanf("%d", &new1->info); } /* Inserting a node at the end */ void insertione(struct link *node) { node = start.next; previous = &start; if(node==NULL) { printf("n the list is empty to create return "); return; } else { while(node->next!=NULL) node = node->next; new1 = (struct link* ) malloc(sizeof(struct link)); printf("n Input the value to be inserted at the end : "); scanf(" %d",&new1->info); node->next=new1; new1->next=NULL; } } /* Removing the first node */
  • 15. void delete_nodef(struct link*node) { node = start.next; previous = &start; if (node == NULL) printf("n Under flow"); else { previous->next = node->next; free(node); } } /* Removing a node when information is known*/ void delete_node(struct link *node) { int node_number = 1; int del_node; node = start.next; previous = &start; printf("n Input information of a node you want to delete: "); scanf("%d", &del_node); while(node) { if(node->info == del_node) { printf("n Position of the information in the list is : %d", node_number); previous->next = node->next; free(node); break ; } else { node = node->next; previous = previous->next; } node_number++; } } /* Removing the last node */ void delete_nodel(struct link *node) { int node_number = 0; node = start.next; previous = &start; if (node == NULL) printf("n Underflow"); else while(node) { node = node->next; previous = previous->next; node_number ++; } node = start.next; previous = &start;
  • 16. while(node_number != 1) { node = node->next; previous = previous->next; node_number --; } if(node_number == 1) { previous->next = node->next; free(node); } }