Skip to main content

Linked List Insertion

 Linked List Insertion at Begin, Insertion at End, Insertion at Position

Program:

#include<stdlib.h>
#include <stdio.h>
     
void create();
void display();
void insert_at_begin();
void insert_at_end();
void insert_at_position();
 
struct node
{
        int data;
        struct node *next;
};
struct node *head=NULL;
int main()     
{
        int choice;
        while(1){
               
                
                printf("\n 1.Create \n");
                printf("\n 2.Display \n");
                printf("\n 3.Insert at the beginning \n");
                printf("\n 4.Insert at the end \n");
                printf("\n 5.Insert at specified position \n");
                printf("\n 6.Exit \n");
                printf("\n--------------------------------------\n");
                printf("Enter your choice:\t");
                scanf("%d",&choice);
                switch(choice)
                {
                        case 1:
                                        create();
                                        break;
                        case 2:
                                        display();
                                        break;
                        case 3: 
                                        insert_at_begin();
                                        break;
                        case 4:
                                        insert_at_end();
                                        break;
                        case 5:
                                        insert_at_position();
                                        break;
                        
                        case 6:
                                        exit(0);
                                        break;
                             
                        default:
                                        printf("Invalid choice");
                                        break;
                }
        }
        return 0;
}
void create()
{
        struct node *newnode,*temp;
        newnode=(struct node *)malloc(sizeof(struct node));
        if(newnode==NULL)
        {
                printf("\nOut of Memory Space:\n");
                exit(0);
        }
        printf("\nEnter the data value for the node:\t");
        scanf("%d",&newnode->data);
        newnode->next=NULL;
        if(head==NULL)
        {
                head=newnode;
        }
        else
        {
                temp=head;
                while(temp->next!=NULL)
                {
                        temp=temp->next;
                }
                temp->next=newnode;
        }
}
void display()
{
        struct node *temp;
        if(head==NULL)
        {
                printf("\nList is empty:\n");
                return;
        }
        else
        {
                temp=head;
                printf("\nThe List elements are:\n");
                while(temp!=NULL)
                {
                        printf("%d\t",temp->data );
                        temp=temp->next ;
                }
        }
}
void insert_at_begin()
{
        struct node *newnode;
        newnode=(struct node *)malloc(sizeof(struct node));
        if(newnode==NULL)
        {
                printf("\nOut of Memory Space:\n");
                return;
        }
        printf("\nEnter the data value for the node:\t" );
        scanf("%d",&newnode->data);
        newnode->next =NULL;
        if(head==NULL)
        {
                head=newnode;
        }
        else
        {
                newnode->next=head;
                head=newnode;
        }
}
void insert_at_end()
{
        struct node *newnode,*temp;
        newnode=(struct node *)malloc(sizeof(struct node));
        if(newnode==NULL)
        {
                printf("\nOut of Memory Space:\n");
                return;
        }
        printf("\nEnter the data value for the node:\t" );
        scanf("%d",&newnode->data);
        newnode->next =NULL;
        if(head==NULL)
        {
                head=newnode;
        }
        else
        {
                temp=head;
                while(temp->next !=NULL)
                {
                        temp=temp->next ;
                }
            temp->next =newnode;
        }
}
void insert_at_position()
{
        struct node *temp,*newnode;
        int i,pos;
        newnode=(struct node *)malloc(sizeof(struct node));
        if(newnode==NULL)
        {
                printf("\nOut of Memory Space\n");
                return;
        }
        printf("\nEnter the position for the new node to be inserted:\t");
        scanf("%d",&pos);
        printf("\nEnter the data value of the node:\t");
        scanf("%d",&newnode->data) ;
  
        newnode->next=NULL;
        if(pos==0)
        {
                newnode->next=head;
                head=newnode;
        }
        else
        {
                for(i=0,temp=head;i<pos-1;i++) { temp=temp->next;
                        if(temp==NULL)
                        {
                                printf("\nInvalid Position!!!\n");
                                return;
                        }
                }
                newnode->next =temp->next ;
                temp->next=newnode;
        }
}



Output:




Comments

Popular posts from this blog

CLASSIFICATION OF EMBEDDED SYSTEMS

  CLASSIFICATION OF EMBEDDED SYSTEMS Some of the criteria used in the classification of embedded systems are as follows: (1) Based on generation (2) Complexity and performance requirements (3) Based on deterministic behavior (4) Based on triggering Classification Based on Generation First Generation :  The early embedded systems were built around 8bit microprocessors like 8085 and Z80, and 4bit microcontrollers. Simple in hardware circuits with firmware developed in Assembly code. Digital telephone keypads, stepper motor control units etc. are examples of this. Second Generation   :  These are embedded systems built around 16bit microprocessors and 8 or 16 bit microcontrollers, following the first generation embedded systems. The instruction set for the second generation processors/controllers were much more complex and powerful than the first generation processors/controllers. Some of the second generation embedded systems contained embedded operating...

Embedded Systems

  Introduction to Embedded Systems WHAT IS AN EMBEDDED SYSTEM? An embedded system is an electronic/electro-mechanical system designed to perform a specific function and is a combination of both hardware and firmware(software). Difference between embedded and general purpose computing system Embedded System A system which is a combination of special purpose hardware and embedded OS for executing a specific set of applications. May or may not contain an operating system for functioning. The firmware of the embedded system is pre-programmed and it is non alterable by the end-user (There may be exceptions for systems supporting OS kernel image flashing through special hardware settings). Application-specific requirements (like performance, power requirements, memory usage, etc.) are the key deciding factors. Highly tailored to take advantage of the power saving modes supported by the hardware and the operating system. For certain category of embedded systems like mission critical syste...

Microprocessor vs Microcontroller

  Difference between a microprocessor and a microcontroller Microprocessor A silicon chip representing a central processing unit (CPU), which is capable of performing arithmetic as well as logical operations according to a predefined set of instructions. It is a dependent unit. It requires the combination of other chips like timers, program and data memory chips, interrupt controllers, etc. for functioning. Most of the time general purpose in design and operation. Doesn't contain a built in I/O port. The I/O port functionality needs to be implemented with the help of external programmable peripheral interface chips like 8255. Targeted for high end market where performance is important. Limited power saving options compared to microcontrollers. Microcontroller A microcontroller is a highly integrated chip that contains a CPU, scratchpad RAM, special and general purpose register arrays, on chip ROM/FLASH memory for program storage, timer and interrupt control units and dedicated I/O ...