EBK DATA STRUCTURES AND ALGORITHMS IN C
4th Edition
ISBN: 9781285415017
Author: DROZDEK
Publisher: YUZU
expand_more
expand_more
format_list_bulleted
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Computer Science
please solve this problem as soon as possible
Write a function to insert the element into the linked list
the given number X. E.g., for a given set of integers, [2, 4, 12, 6, 5, 3], the linked list is 2->4->12->6->5->3. For a given number, (X=15), the count will be 11 that are (2,4), (2,12), (2,6), (2,5), (2,3), (4,6), (4,5), (4,3), (6,5), (6,3), (5,3).
Develop a topological sort implementation thatmaintains a vertex-indexed array that keeps track of the indegree of each vertex. Initialize the array and a queue of sources in a single pass through all the edges. Then, perform the following operations until the source queue is empty:■ Remove a source from the queue and label it.■ Decrement the entries in the indegree array corresponding to the destination vertex of each of the removed vertex’s edges
If decrementing any entry causes it to become 0, insert the corresponding vertex onto the source queue.
Suppose there are two singly linked lists both of which intersect at some point and become a single linked list. The head or start pointers of both the lists are known, but the intersecting node is unknown. Also, the number of nodes in each of the list before they intersect are unknown and both the list may have it different. List1 may have n nodes before it reaches intersection point and List2 might have m nodes before it reaches intersection point where m and n may be m = n, m > n or m < n. Give an algorithm for finding the merging point.
Hints:
A brute force approach would be to compare every pointer in one list with every pointer in another list. But in this case the complexity would be O(mn)
Chapter 12 Solutions
EBK DATA STRUCTURES AND ALGORITHMS IN C
Knowledge Booster
Similar questions
- Develop a topological sort implementation thatmaintains a vertex-indexed array that keeps track of the indegree of each vertex. Initialize the array and a queue of sources in a single pass through all the edges Then, perform the following operations until the source queue is empty:■ Remove a source from the queue and label it.■ Decrement the entries in the indegree array corresponding to the destinationvertex of each of the removed vertex’s edges.arrow_forwardImplement a method to remove a node from the centre of a singly linked list—that is, any node other than the first and end nodes—with access to only that node.EXAMPLEThe node C from the linked list a->b->c->d->e->f should be entered.Nothing is returned as a result, although the new linked list has the shape of an a->b->d->e->farrow_forwardReverse a singly linked list by changing the pointers of the nodes. The datarepresented by the list should continue to remain in the same nodes of the originallist.For example, given a singly linked list START, as shown in Figure P6.9(a), the listneeds to be reversed, as shown in Figure P6.9(b), by manipulating the links alone.arrow_forward
- The bounded-buffer solution in the below code uses a last-in-first-out strategy (LIFO).Change the code to implement a FIFO (First-in-First-out) strategy. You may use the (in,out) pointer method(using semaphores to test if the queue is full or empty shouldalleviate the problem of only using up N-1 locations) or implement a FIFO queue. Usethe correct counting semaphore implementation. C code below ******************************************************************************************************************************* #include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <semaphore.h>#define SIZE 5#define NUMB_THREADS 6#define PRODUCER_LOOPS 2typedef int buffer_t;buffer_t buffer[SIZE];int buffer_index;pthread_mutex_t buffer_mutex;/* initially buffer will be empty. full_semwill be initialized to buffer SIZE, which meansSIZE number of producer threads can write to it.And empty_sem will be initialized to 0, so noconsumer can read from buffer until a…arrow_forwardWe assume that the nodes of the singly linked lists are organized in decreasing order of the exponents of the variable x in order to add the two polynomials.The goal is to build a fresh list of nodes to symbolize the addition of P1 and P2. This is accomplished by combining the COEFF fields of the nodes in lists P1 and P2 that have similar powers of the variable x, then adding a new node that reflects this action in the resulting list P1 + P2. The key steps of the process are presented below.Here, P1 and P2 are the single-linked lists that symbolize the polynomials P1 and P2, respectively. Furthermore, two temporary pointers named PTR1 and PTR2 have their initial values assigned to P1 and P2, respectively. Script out the process codearrow_forwardGiven a circular linked list, implement an algorithm that returns the node at thebeginning of the loop.DEFINITIONCircular linked list: A (corrupt) linked list in which a node's next pointer points to an earlier node, soas to make a loop in the linked list.EXAMPLEInput: A -> B -> C -> D -> E -> C [the same C as earlier]Output: Carrow_forward
- Given a circular linked list, implement an algorithm that returns the node at the beginning of the loop.DEFINITIONCircular linked list: A (corrupt) linked list in which a node's next pointer points to an earlier node, soas to make a loop in the linked list.EXAMPLEInput:Output:A -> B -> C -> D -> E -> C [the same C as earlier]Carrow_forwardConsider a singly linked list where each node contains two fields – integerdata and node type pointer next. The head of the list and a value of the data isgiven. You have to find the node that contains the given data and delete thatnode. Data may occur at any position of the list including first or last. In caseof unavailability of the given data, you have to print a message. You have toImplement a delete operation of a singly linked list.Code in Carrow_forwardConsider a singly linked list where each node contains two fields – integerdata and node type pointer next. The head of the list and a value of the data isgiven. You have to find the node that contains the given data and delete thatnode. Data may occur at any position of the list including first or last. In caseof unavailability of the given data, you have to print a message. You have toImplement a delete operation of a singly linked list.arrow_forward
- Implement a method to remove a node in the middle of a singly linked list (i.e., any node except the first and last node, not necessarily the exact middle), given only access to that node.EXAMPLElnput:the node c from the linked list a->b->c->d->e->fResult: nothing is returned, but the new linked list looks like a ->b->d->e->farrow_forwardGiven a singly linked list of integers, reverse the nodes of the linked list 'k' at a time and return its modified list. 'k' is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of 'k,' then left-out nodes, in the end, should be reversed as well.Example :Given this linked list: 1 -> 2 -> 3 -> 4 -> 5 For k = 2, you should return: 2 -> 1 -> 4 -> 3 -> 5 For k = 3, you should return: 3 -> 2 -> 1 -> 5 -> 4 Note :No need to print the list, it has already been taken care. Only return the new head to the list. Input format :The first line contains an Integer 't' which denotes the number of test cases or queries to be run. Then the test cases follow. The first line of each test case or query contains the elements of the singly linked list separated by a single space. The second line of input contains a single integer depicting the value of 'k'. Remember/Consider :While specifying the list…arrow_forwardGiven a linked list of N nodes such that it may contain a loop. A loop here means that the last node of the link list is connected to the node at position X(1-based index). If the link list does not have any loop, X=0. Remove the loop from the linked list, if it is present, i.e. unlink the last node which is forming the loop. Example 1: Input: N = 3 value[] = {1,3,4} X = 2 Output: 1 Explanation: The link li. st looks like 1 -> 3 -> 4 ^ | |____|arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education