Saturday, September 24, 2022

Implementation of Stack using Linked List

 #include<stdio.h>
#include<stdlib.h>
struct node
{
    int info;
    struct node *link;
    
};
struct node *top;
int main()
{
    struct node *ptr,*cpt;
    int n;
    ptr=(struct node *)malloc(sizeof(struct node));
                    printf("\nEnter the element to insert");
                    scanf("%d",&ptr->info);
                    top=ptr;
    do
    {
        printf("\nPress 1 for push");
        printf("\nPress 2 for pop");
        printf("\nPress 3 for display");
        printf("\nPress 4 for exit");
        scanf("%d",&n);
    //Push operation
   
        switch(n)
         {
            case 1: cpt=(struct node *)malloc(sizeof(struct node));
                    printf("\nEnter the element to insert");
                    scanf("%d",&cpt->info);
                    
                    cpt->link=top;
                   top=cpt;
                    break;
            case 2: cpt=top;
                    top=cpt->link;
                    free(cpt);
                    break;
                    
            case 3: cpt=top; 
                    while(cpt!=NULL)
                    {
                        printf("%d\t",cpt->info);
                        cpt=cpt->link;
                     }
    
        } 
    }
    while(n<4);

    return 0;
}

Thursday, September 22, 2022

Video for Singly Linked List Program in C


 I have made a video on the Program for Singly Linked List.

The link is given below, share it among students so that they can have an idea about the program.


Tuesday, September 6, 2022

Program for Singly linked list

#include <stdio.h>
#include <stdlib.h>
struct node 
{
    int info;
    struct node *link;
};
struct node *first;

int main()
{
    struct node *ptr,*cpt,*tpt;
    int s;
    char n;
do
{
    printf("\nHi guys plase select the option to initiate the link list");
    printf("\nPress 1 for creation");
    printf("\nPress 2 for display");
    printf("\nPress 3 for insertion at the beginning");
    printf("\nPress 4 for insertion at end");
    printf("\nPress 5 for insertion at a given location");
    printf("\nPress 6 to delete from the beginning");
    printf("\nPress 7 to delete from the end");
    printf("\nPress 8 to delete a specific element");
    printf("\nPress 9 to terminate");
    printf("\nEnter your choice:");
    scanf("%d",&s);
    
    switch(s)
{
        case 1:
       
            //Create a new link list
    ptr=(struct node *)malloc(sizeof(struct node));
    printf("ENTER THE VALUE");
    scanf("%d",&ptr->info);
    first=ptr;
    
    do
    {
        cpt=(struct node *)malloc(sizeof(struct node));
    printf("ENTER THE VALUE");
    scanf("%d",&cpt->info);
    ptr->link=cpt;
    ptr=cpt;
    
    printf("\nEnter Y for more nodes");
    scanf("%s",&n);
    }
    while(n=='y');
    ptr->link=NULL;
     break;
      
    
    
     case 2: // Display a linked list
     
        ptr=(struct node *)malloc(sizeof(struct node));
    ptr=first;
    while(ptr!=0)
    {
        printf("%d\t",ptr->info);
        ptr=ptr->link;
    }
    break;
     
    case 3: tpt=(struct node *)malloc(sizeof(struct node));
    printf("ENTER THE VALUE");
    scanf("%d",&tpt->info);
    tpt->link=first;
    first=tpt;
    break;
    
    case 4:tpt=(struct node *)malloc(sizeof(struct node));
    printf("ENTER THE VALUE");
    scanf("%d",&tpt->info); 
    ptr=first;
    while(ptr->link!=NULL)
    {
        ptr=ptr->link;
    }
    ptr->link=tpt;
    tpt->link=NULL;
    break;
    
    case 5:   //Insert at a given location
 
        ptr=(struct node *)malloc(sizeof(struct node));
    int data;
    struct node *tpt;
    tpt=(struct node *)malloc(sizeof(struct node));
    printf("ENTER THE VALUE");
    scanf("%d",&tpt->info);
    printf("Enter the location in which insertion has to be made!");
    scanf("%d",&data);
    
    ptr=first;
    while(ptr->info!=data)
    {
        ptr=ptr->link;
    }
    tpt->link=ptr->link;
    ptr->link=tpt;
     ptr=(struct node *)malloc(sizeof(struct node));
    ptr=first;
    while(ptr!=0)
    {
        printf("%d\t",ptr->info);
        ptr=ptr->link;
    }
    break;
    case 6: ptr=first;
    first=ptr->link;
    free(ptr);
    break;
    
    case 7: ptr=first;
    while(ptr->link!=NULL)
    {
        cpt=ptr;
        ptr=ptr->link;
    }
    cpt->link=NULL;
    free(ptr);
    break;
    
    case 8:

        // Deletion of a specific location
        ptr=(struct node *)malloc(sizeof(struct node));
        cpt=(struct node *)malloc(sizeof(struct node));
    int loc;
     ptr=(struct node *)malloc(sizeof(struct node));
    ptr=first;
    while(ptr!=0)
    {
        printf("%d\t",ptr->info);
        ptr=ptr->link;
    }
    printf("\nEnter the location where you have to delete:");
    scanf("%d",&loc);
        ptr=first;
    while(ptr->info!=loc)
    {
        cpt=ptr;
        ptr=ptr->link;
        
    }
    cpt->link=ptr->link;
    free(ptr);
}
}
while(s<9);
return 0;
}