The following hybrid method of representing a queue has, to a certain extent, th
ID: 3703699 • Letter: T
Question
The following hybrid method of representing a queue has, to a certain extent, the advantages of both the linked and sequential representations. The queue is represented using a linked list of nodes with two pointers, Fand R, to the first and last nodes of the list respectively. The nodes have two fields, ITEM and LINK. LINK is a pointer to the next node in the list and ITEM is an array of M queue entries, where M is some fixed constant. For example, with M-5, suppose that the 12 values a, b, c, £, g, h, k, m, p, q,t,x were inserted into an empty queue in that order and then two values were deleted from the queue. The resulting queue would be represented by the following list The front of the queue is accessed using the pointer F and an index FIRST indicating the position in the array FT ITEM of the first element in the queue. The rear of the queue is accessed using the pointer R and an index LAST indicating the position in the array R ITEM of the last element in the queue. In the above example the value of FIRST would be 3 and the value of LAST would be 2. Notes: () It is assumed here that array elements are indexed starting from 1 (i) An empty queue is represented by Fnil. Give algorithms for the QUEUE and UNQUEUE operations.Explanation / Answer
/*The algorithm described below is the standard alsgorithm which should be followed while inserting and deleting items from the Queue*/
The following Algorithm can be used to Enqueue and Dequeue operations in the linked list:
1. EnQueue (value) - Inserting an element into the Queue
Queues maintain two data pointers, front and rear. Therefore, its operations are comparatively difficult to implement than that of stacks.
The following steps should be taken to enqueue (insert) data into a queue:
Step 1: Create a newNode with given value and set 'newNode ? next' to NULL.
Step 2: Check whether queue is Empty (rear == NULL)
Step 3: If it is Empty then, set front = newNode and rear = newNode.
Step 4: If it is Not Empty then, set rear ? next = newNode and rear = newNode.
2. deQueue() - Deleting an Element from Queue
Accessing data from the queue is a process of two tasks ? access the data where front is pointing and remove the data after access. The following steps are taken to perform dequeue operation:
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.