Introduction to Algorithms
3rd Edition
ISBN: 9780262033848
Author: Thomas H. Cormen, Ronald L. Rivest, Charles E. Leiserson, Clifford Stein
Publisher: MIT Press
expand_more
expand_more
format_list_bulleted
Question
Chapter 10.3, Problem 5E
Program Plan Intro
To write a procedure COMPACTIFY-LIST( L,F ) for the list L and free list F that has running time of
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Add a new public member function to the LinkedList class named reverse() which reverses the items in the list. You must take advantage of the doubly-linked list structure to do this efficiently as discussed in the videos/pdfs, i.e. swap each node’s prev/next pointers, and finally swap headPtr/tailPtr. Demonstrate your function works by creating a sample list of a few entries in main(), printing out the contents of the list, reversing the list, and then printing out the contents of the list again to show that the list has been reversed.
Note: your function must actually reverse the items in the doubly-linked list, not just print them out in reverse order!
Note: we won't use the copy constructor in this assignment, and as such you aren't required to update the copy constructor to work with a doubly-linked list.
This is what I have so far but its not working!
template<class ItemType>void LinkedList<ItemType>::reverse(){ Node<ItemType>*curPtr,*prev,*next;…
In this question, you are to implement two
functions for reversing linked lists. One function,
reverse_iter(..), must use an iterative approach
(i.e., loops), whereas the other function,
reverse_rec(..), must use recursion instead.
We have already implemented the linked list as
well as all its helper-functions in the Ilist-module.
Consider 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.
Chapter 10 Solutions
Introduction to Algorithms
Ch. 10.1 - Prob. 1ECh. 10.1 - Prob. 2ECh. 10.1 - Prob. 3ECh. 10.1 - Prob. 4ECh. 10.1 - Prob. 5ECh. 10.1 - Prob. 6ECh. 10.1 - Prob. 7ECh. 10.2 - Prob. 1ECh. 10.2 - Prob. 2ECh. 10.2 - Prob. 3E
Ch. 10.2 - Prob. 4ECh. 10.2 - Prob. 5ECh. 10.2 - Prob. 6ECh. 10.2 - Prob. 7ECh. 10.2 - Prob. 8ECh. 10.3 - Prob. 1ECh. 10.3 - Prob. 2ECh. 10.3 - Prob. 3ECh. 10.3 - Prob. 4ECh. 10.3 - Prob. 5ECh. 10.4 - Prob. 1ECh. 10.4 - Prob. 2ECh. 10.4 - Prob. 3ECh. 10.4 - Prob. 4ECh. 10.4 - Prob. 5ECh. 10.4 - Prob. 6ECh. 10 - Prob. 1PCh. 10 - Prob. 2PCh. 10 - Prob. 3P
Knowledge Booster
Similar questions
- Implement a function to insert a node at the end of a doubly linked list. Explain the steps involved and analyze the time complexity of your implementation.arrow_forwardSuppose you have an array-based implementation of a linked list. What would be the worst case asymtotic runtime of the following functions? Select the tightest. Please explain for each funtion. insert() search() delete() minimum() maximum()arrow_forwardGiven a singly linked list L, where x and y are two data elements that occupy the nodes NODEX and NODEY with PREVIOUSX as the node, which is the previous node of NODEX, write a pseudo-code to swap the date x and y in list L by manipulating the links only (data swapping is not allowed). Assume that x and y are available in the list and are neither neighbors nor the end nodes of list L. For example, given the list L shown in Figure P6.10(a), with L, NODEX, NODEY and PREVIOUSX marked on it, the swapping should yield the list shown in Figure P6.10(b). NODEX and NODEY are neither immediate neighbors nor the end nodes of list L. PREVIOUS X NODE X PREVIOUS X எக்க்கக்கா எத்த்தக்க (a) Before swapping g and x NODE Y NODE Y (b) After swapping g and x Linked Lists 193 NODE X Figure P6.10. Swapping of elements in a singly linked list by manipulating linksarrow_forward
- Given a singly linked list L, where x and y are two data elements that occupy the nodes NODEX and NODEY with PREVIOUSX as the node, which is the previous node of NODEX, write a pseudo-code to swap the date x and y in list L by manipulating the links only (data swapping is not allowed). Assume that x and y are available in the list and are neither neighbors nor the end nodes of list L. For example, given the list L shown in Figure P6.10(a), with L, NODEX, NODEY and PREVIOUSX marked on it, the swapping should yield the list shown in Figure P6.10(b). NODEX and NODEY are neither immediate neighbors nor the end nodes of list L. PREVIOUS X NODE Y 00 bodo a X С NODE X PREVIOUS X g W (a) Before swapping g and x NODE Y Linked Lists 193 NODE X (b) After swapping g and x addada. Figure P6.10. Swapping of elements in a singly linked list by manipulating linksarrow_forwardImplement a function to remove duplicates from a list using an efficient algorithm.arrow_forwardWrite a function, to be included in a sorted linked list class, called printPosition, that will receive a T parameter and print its position within the list ( position 1 if in first node, position 2 if in second…). If the item is not in the list, specify it in a printing. Consider efficiency.arrow_forward
- This is assignment used C++. Develop a linked-list processing function, IsolateTargetSoloAsTail, to process a linked list as follows. ● If a target cannot be found on the given list, a new node containing the target is created and added to the list's end (made the new tail node). ► This includes the case where the given list is empty, in which the new tail node added is also the new head node. (This is so because the only node in a 1-node list is the list's head and tail node.) ● If the target appears only once on the given list, the target-matching node is moved to the list's end (made the new tail node). ► Nothing needs to be done if the target-matching node is already the tail node (of the given list). ● If the target appears multiple times on the given list, the first target-matching node is moved to the list's end (made the new tail node), and all other target-matching nodes are to be deleted from the list. ► Note that although…arrow_forwardSuppose 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)arrow_forwardA linked list is said to contain a cycle if any node is visited more than once while traversing the list. Given a pointer to the head of a linked list, determine if it contains a cycle. If it does, return 1. Otherwise, return 0. Example: head refers to the list of nodes 1 → 2 → 3 → 1 → NULL. There is a cycle where node 3 points back to node 1, so return 1. Function Description: Complete the has cycle function provided in the moodle assignment folder. It has the following parameter: • SinglyLinkedListNode pointer head: a reference to the head of the list. Returns: • int: 1 if there is a cycle or 0 if there is not. Note: if the list is empty, head will be null. Input Format: The code stub reads from stdin and passes the appropriate argument to your function. The custom test cases format will not be described for this question due to its complexity. Expand the section for the main function and review the code if you would like to figure out how to create a custom case. Constraints:…arrow_forward
- Write a program which should implement a linear linked list. Elements of this linked list should be of float type, user will provide values as input for elements of this linked list. Your program should allow deletion of a value of fist and last node of link list.arrow_forwardWrite and implement a recursive version of the binary search algorithm. Also, write a version of the sequential search algorithm that can be applied to sorted lists. Add this operation to the class orderedArrayListType for array-based lists. Moreover, write a test program to test your algorithm.arrow_forwardB1 Write a function NearestPoint (G,v,mylist) which takes as input a networkx object G representing a weighted graph, an object v which will be a node of G, and a list mylist of some other nodes of G. The function should return whichever node in mylist is nearest to v (in the sense of the minimum weight path from v). In the event of a tie, it should return the nearest node which appears earliest in mylist. CORDELIA WEBB UNIVERSITY OF LEEDS, 2023/24 B2 We say that a weighted graph has the Unique Weight Prop- erty (UWP) if no two edges have the same weight. Recall from Workshop 9-10 that if G is connected and has the UWP then it will automatically have a unique spanning tree. Write a func- tion UWP (G) which tests whether or not G has the UWP and returns True or False accordingly. Hint: extract a list of edge-weights and use the count func- tion to see how many times each appears. B3 Write a function GoodPath (G,a,b) which takes as input a net- workx object G representing a connected…arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning