Question: LINKED LISTS For your linked lists, you must use the structs we have specified in ListyString.h without any modifications. You must #include the header file

LINKED LISTS

For your linked lists, you must use the structs we have specified in ListyString.h without any modifications. You must #include the header file from ListyString.c like so: #include "ListyString.h"

The node struct you will use for your linked lists is defined in ListyString.h as follows: typedef struct ListyNode { char data; // Each node holds a single character. struct ListyNode *next; // Pointer to next node in linked list. } ListyNode;

Additionally, there is a ListyString struct that you will use to store the head of each linked list string, along with the length of that list: typedef struct ListyString { struct ListyNode *head; // Pointer to head of string's linked list. int length; // Length of this string / linked list. } ListyString;

ListyString *createListyString(char *str); Description: Convert str to a ListyString by first dynamically allocating a new ListyString struct, and then converting str to a linked list string whose head node will be stored inside that ListyString struct. Be sure to update the length member of your new ListyString, as well. Special Considerations: str may contain any number of characters, and it may contain nonalphanumeric characters. If str is NULL or an empty string (), simply return a new ListyString whose head is initialized to NULL and whose length is initialized to zero. Runtime Requirement: This should be an O(k) function, where k is the length of str. Returns: A pointer to the new ListyString. Ideally, this function would return NULL if any calls to malloc() failed, but I do not intend to test your code in an environment where malloc() would fail, so you are not required to check whether malloc() returns NULL.

ListyString *destroyListyString(ListyString *listy); Description: Free any dynamically allocated memory associated with the ListyString and return NULL. Be sure to avoid segmentation faults in the event that listy or listy->head are NULL. Returns: NULL.

ListyString *cloneListyString(ListyString *listy); Description: Using dynamic memory allocation, create and return a new copy of listy. Note that you should create an entirely new copy of the linked list contained within listy. (That is, you should not just set your new ListyStrings head pointer equal to listyhead.) The exception here is that if listy->head is equal to NULL, you should indeed create a new ListyStruct whose head member is initialized to NULL and whose length member is initialized to zero. If listy is NULL, this function should simply return NULL. Runtime Requirement: The runtime of this function should be no worse than O(n), where n is the length of the ListyString. Returns: A pointer to the new ListyString. If the listy pointer passed to this function is NULL, simply return NULL.

void replaceChar(ListyString *listy, char key, char *str); Description: This function takes a ListyString (listy) and replaces all instances of a certain character (key) with the specified string (str). If str is NULL or the empty string (), this function simply removes all instances of key from the linked list. If key does not occur anywhere in the linked list, the list remains unchanged. If listy is NULL, or if listy->head is NULL, simply return.

Important Note: Be sure to update the length member of the ListyString as appropriate. Runtime Requirement: The runtime of this function should be no worse than O(n + km), where n is the length of the ListyString, k is the number of times key occurs in the ListyString, and m is the length of str. Returns: Nothing. This is a void function.

Stuck on the functins, running into segmentation faults and output mismatches

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!