Explanation of Solution
Implementation of “find_fit()” function with First-fit search:
In the “Section 9.9.12 (mm.c)”, add the below “find_fit()” function. The function “find_fit()” is as follows:
// Definition of find_fit() function to find a block fit with size bytes
static void *find_fit(size_t asize)
{
// First-fit search
// Declare the pointer
void *bp;
// For loop to find the fit for first block
for (bp = heap_listp; GET_SIZE(HDRP(bp)) > 0; bp = NEXT_BLKP(bp)) {
// Check the allocation and size
if (!GET_ALLOC(HDRP(bp)) && (asize <= GET_SIZE(HDRP(bp)))) {
// Return the point
return bp;
}
}
// Return null if no fit is available
return NULL;
}
Explanation:
The “find_fit()” function is to find a block fit with size bytes.
- Declare a pointer “bp” to represent which place the block is allocated.
- “for” loop to search the place to fit the first block.
- “if” statement to check the place and size to fit the block.
- Return the pointer.
- Otherwise, return “NULL” if no fit is available.
- “if” statement to check the place and size to fit the block.
The “find_fit()” function is used to implement other simple implicit-list allocator same as first-fit search and to handle and traverse blocks.
Filename: main.c
// Include libraries
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
// Include required header files
#include "csapp.h"
#include "memlib.h"
#include "mm.h"
#include "memlib.c"
#include "mm...
Want to see the full answer?
Check out a sample textbook solutionChapter 9 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
- The code below is for: (Programming language is C) a. Create a sorted linked list using tenStudent array (copy from array into the linked list will be done). b. Append an element to the end of a list c. Delete the last element from a list. d. Delete the nth element from a list. >>>>>>>>>>>>>>>>>>>>>>>>>> I need to complete the code to do : 1. Using the linked list which is populated at step a, Create a binary tree. The new tree will be created during the deletion of the linked list. The rest of question details in picture.. (Programming language is C) .. thank you The Code: #include<stdio.h>#include<stdlib.h> struct student{int TC;char F_name[12];char L_name[12];int age;char gender[2];};struct student tenStudent[10] =…arrow_forward(Implement a doubly linked list) The MyLinkedList class used in Listing 24.6 is a one-way directional linked list that enables one-way traversal of the list. Modify the Node class to add the new data field name previous to refer to the previous node in the list, as follows:public class Node<E> { E element; Node<E> next; Node<E> previous;public Node(E e) { element = e; } }Implement a new class named TwoWayLinkedList that uses a doubly linked list to store elements. The MyLinkedList class in the text extends MyAbstractList. Define TwoWayLinkedList to extend the java.util.AbstractSequentialList class. You need to implement all the methods defined in MyLinkedList as well as the methods listIterator() and listIterator(int index). Both return an instance of java.util. ListIterator<E>. The former sets the cursor to the head of the list and the latter to the element at the specified index.arrow_forwardProgramming Language: C++ Please provide notes for understanding. 7.3: Delete Repeats Write a function called delete_repeats that has a partially filled array ofcharacters as a formal parameter and that deletes all repeated letters fromthe array. Since a partially filled array requires two arguments, the functionwill actually have two formal parameters: an array parameter and a formalparameter of type int that gives the number of array positions used. Whena letter is deleted, the remaining letters are moved forward to fill inthe gap. This will create empty positions at the end of the array so thatless of the array is used. Since the formal parameter is a partially filledarray, a second formal parameter of type int will tell how many arraypositions are filled. This second formal parameter will be a call-by-reference parameter and will be changed to show how much of the array is used after the repeated letters are deleted. For example, consider the following code:char (Links to an…arrow_forward
- c) (6 points) For each of the following scenarios choose the "best" data structure from the following list or a combination of data structures: an unsorted array, linked list, DLL, circular LL, stack, queue. In each case, justify your answer briefly. i. Suppose that a grocery store decided that customers who come first will be served first. ii. A list must be maintained so that any element can be accessed randomly. iii. A program needs to remember operations it performed in opposite order.arrow_forward(In java please) ( NO TOY CLASS PLEASE READ INSTRUCTION OR DOWN VOTE PLEASE LOOK AT TWO IMAGES BELOW FIRST ONE IS CURRENCY CLASS NEED THE SECOND IS INSTRUCTIONS ON HOW TO MAKE TEST CLASS. PLEASE NO TOY CLASS OR DOWN VOTE USE CURRENCY CLASS INSTEAD AND UPDATE IT) THIS A LinkNode structure or class which will have two attributes - a data attribute, and a pointer attribute to the next node. The data attribute of the LinkNode should be a reference/pointer of the Currency class of Lab 2. Do not make it an inner class or member structure to the SinglyLinkedList class of #2 below. A SinglyLinkedList class which will be composed of three attributes - a count attribute, a LinkNode pointer/reference attribute named as and pointing to the start of the list and a LinkNode pointer/reference attribute named as and pointing to the end of the list. Since this is a class, make sure all these attributes are private. The class and attribute names for the node and linked list are the words in bold in #1…arrow_forwardDo not use 2d lists, sets, dicts, arrays or recursion. Code in Python. Write the function destructiveRemoveRepeats(L), whichtakes a list L and destructively returns a new list in which any repeating elements in L are removed. Thus, this function should directly modify the provided list to not have any repeating elements. Since this is a destructive function, it should not return any value at all (so, implicitly, it should return None). For example: L = [1, 3, 5, 3, 3, 2, 1, 7, 5] destructiveRemoveRepeats(L) assert(L == [1, 3, 5, 2, 7])arrow_forward
- SOB 22 – (Block 2)Write up what the properties of sets, lists, vectors and strings are and whether they are mutable or immutable. Then consider the class of problems that they are best for and use some code to illustrate your points. E.g., if you have a function that solves a problem using lists, then you can say why you can/can’t use vectors for it or sets etc. Hint: Try and think of a problem (or maybe one you have already solved as part of the exercises) and try and solve it using the different data structures, e.g. first with lists, then vector, then sets. Which do you think works best? They might all be suitable? Is there a problem that you can think of where the one is suitable and the other is not (the key thing here is to understand how they differ)?[2:50 PM] E.g. a student was trying to add all the elements of 2 vectors together. He solved the problem with vectors. Can he use lists or sets? Show this by writing code in Racket to make your point.arrow_forward8.16 LAB: Mileage tracker for a runner C++ Given the MileageTrackerNode class, complete main() to insert nodes into a linked list (using the InsertAfter() function). The first user-input value is the number of nodes in the linked list. Use the PrintNodeData() function to print the entire linked list. DO NOT print the dummy head node. Ex. If the input is: 3 2.2 7/2/18 3.2 7/7/18 4.5 7/16/18 the output is: 2.2, 7/2/18 3.2, 7/7/18 4.5, 7/16/18 I need the //TODO completed Main.cpp #include "MileageTrackerNode.h" #include <string> #include <iostream> using namespace std; int main (int argc, char* argv[]) { // References for MileageTrackerNode objects MileageTrackerNode* headNode; MileageTrackerNode* currNode; MileageTrackerNode* lastNode; double miles; string date; int i; // Front of nodes list headNode = new MileageTrackerNode(); lastNode = headNode; // TODO: Read in the number of nodes cin >> i int p = i; currNode…arrow_forward8.16 LAB: Mileage tracker for a runner C++ Given the MileageTrackerNode class, complete main() to insert nodes into a linked list (using the InsertAfter() function). The first user-input value is the number of nodes in the linked list. Use the PrintNodeData() function to print the entire linked list. DO NOT print the dummy head node. Ex. If the input is: 3 2.2 7/2/18 3.2 7/7/18 4.5 7/16/18 the output is: 2.2, 7/2/18 3.2, 7/7/18 4.5, 7/16/18 Main.cpp #include "MileageTrackerNode.h"#include <string>#include <iostream>using namespace std; int main (int argc, char* argv[]) {// References for MileageTrackerNode objectsMileageTrackerNode* headNode;MileageTrackerNode* currNode;MileageTrackerNode* lastNode; double miles;string date;int i; // Front of nodes listheadNode = new MileageTrackerNode();lastNode = headNode; // TODO: Read in the number of nodes // TODO: For the read in number of nodes, read// in data and insert into the linked list // TODO: Call the…arrow_forward
- a. What is the efficient method for “array resizing” implementation of the stack in “push” and “pop” cases? b. The following is the postfix evaluation code for your reference. Explain the stack status for evaluating the following postfix expression 3 4 5 + *arrow_forward14.7 Practice using C++ hash templates C++ has two built in hash structures that will suite for most programming needs of hashes. The two types are unorderedmap and orderedmap. In this weeks program you are going to practice creating, inserting and iterating over the two types of maps. Your assignment is to create an unordered map and an ordered map, both with have key value pairs of type . You will read the key value pairs in from a dataFile using the file stream operator storing the first value (an integer into the integer key) and the second one into a string. You will then insert each pair into both the unordered and ordered maps. Lastly you will use an interator to iterate through the map printing them out. Your output should make it clear by label which list is the ordered map and which is the unordered map. The test provided is merely for your assistance - your program will be graded on it's content regardless of the results of book test. You will need the following references…arrow_forward*Can Someone Help me with this, I will be so Grateful. It is due Tommorrow :(** Write a C++ Program, Create a template class for a dynamic 1D array. You can model your class off of our Stringclass or the dynamic list class. Changes from Stringclass: You won't need an end-of-string element in the array. The element type is now templated. Translation will no longer be necessary. operators - and -= 'might' now make sense (erase element(s)?). ... Show how useful your template array class is by creating arrays of short integers doubles Stringclass objects (static) Pointclass objects pointers to Pointclass objects (each allocated on the heap) — all in one test application. Make sure your test application is a good/thorough test of your class. (Your test application might utilize the applyand accumulatefunctions from lecture to facilitate testing. Also note how a typical template test application is structured — using templates to ease development.arrow_forward
- 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