Linked Representation

Embed Size (px)

Citation preview

  • 8/6/2019 Linked Representation

    1/4

    IMPLEMENTATION OF A QUEUE USING LINKED REPRESENTATION

    Introduction

    Initially, the list is empty, so both the front and rear pointers are NULL. The insert function creates a newnode, puts the new data value in it, appends it to an existing list, and makes the rear pointer point to it. Adelete function checks whether the queue is empty, and if not, retrieves the data value of the node pointed

    to by the front, advances the front, and frees the storage of the node whose data value has been retrieved.

    If the above strategy is used for creating a queue with four data values 10, 20, 30, and 40, the queue getscreated as shown in Figure 19.5.

    Figure 19.5: Linked queue.

    Program

    A complete C program for implementation of a stack using the linked list is shown here:

    # include

    # include

    struct node

    {

    int data;struct node *link;

    };

    void insert(struct node **front, struct node **rear, int value)

    {

    struct node *temp;

    temp=(struct node *)malloc(sizeof(struct node));

    /* creates new node

    using data value

    passed as parameter */

    if(temp==NULL)

    < Day Day Up >

    Page 1 of 4IMPLEMENTATION OF A QUEUE USING LINKED REPRESENTATION

    6/8/2011mk:@MSITStore:D:\movie\C%20Programming%20Language%20Books\C-AndDataStruct...

  • 8/6/2019 Linked Representation

    2/4

    {

    printf("No Memory available Error\n");

    exit(0);

    }

    temp->data = value;

    temp->link=NULL;

    if(*rear == NULL)

    {

    *rear = temp;*front = *rear;

    }

    else

    {

    (*rear)->link = temp;

    *rear = temp;

    }

    }

    void delete(struct node **front, struct node **rear, int *value)

    {

    struct node *temp;

    if((*front == *rear) && (*rear == NULL))

    {printf(" The queue is empty cannot delete Error\n");

    exit(0);

    }

    *value = (*front)->data;

    temp = *front;

    *front = (*front)->link;

    if(*rear == temp)

    *rear = (*rear)->link;

    free(temp);

    }

    void main()

    {struct node *front=NULL,*rear = NULL;

    int n,value;

    do

    {

    do

    {

    printf("Enter the element to be inserted\n");

    scanf("%d",&value);

    insert(&front,&rear,value);

    printf("Enter 1 to continue\n");

    scanf("%d",&n);

    } while(n == 1);

    printf("Enter 1 to delete an element\n");scanf("%d",&n);

    while( n == 1)

    {

    delete(&front,&rear,&value);

    printf("The value deleted is %d\n",value);

    printf("Enter 1 to delete an element\n");

    scanf("%d",&n);

    }

    printf("Enter 1 to continue\n");

    scanf("%d",&n);

    Page 2 of 4IMPLEMENTATION OF A QUEUE USING LINKED REPRESENTATION

    6/8/2011mk:@MSITStore:D:\movie\C%20Programming%20Language%20Books\C-AndDataStruct...

  • 8/6/2019 Linked Representation

    3/4

    } while(n == 1);

    }

    Example

    Input and Output

    Enter the element to be inserted

    10

    Enter 1 to continue

    1

    Enter the element to be inserted

    20

    Enter 1 to continue

    1

    Enter the element to be inserted

    30

    Enter 1 to continue

    0

    Enter 1 to delete an element

    1

    The value deleted is 10Enter 1 to delete an element

    1

    The value deleted is 20Enter 1 to delete an element

    0

    Enter 1 to continue

    1

    Enter the element to be inserted

    40

    Enter 1 to continue

    1

    Enter the element to be inserted

    50

    Enter 1 to continue

    0

    Enter 1 to delete an element

    1

    The value deleted is 30Enter 1 to pop an element

    1

    Page 3 of 4IMPLEMENTATION OF A QUEUE USING LINKED REPRESENTATION

    6/8/2011mk:@MSITStore:D:\movie\C%20Programming%20Language%20Books\C-AndDataStruct...

  • 8/6/2019 Linked Representation

    4/4

    The value deleted is 40Enter 1 to delete an element

    1

    The value deleted is 50

    Enter 1 to delete an element

    1

    The queue is empty, cannot delete Error

    < Day Day Up >

    Page 4 of 4IMPLEMENTATION OF A QUEUE USING LINKED REPRESENTATION

    6/8/2011mk:@MSITStore:D:\movie\C%20Programming%20Language%20Books\C AndDataStruct