Program this in C PLEASE includeetc not C OR JAVA I am not s
Program this in C PLEASE (#include<stdio.h>..etc not C++ OR JAVA)
I am not satisfied with the other answers.....
I will give a good rating to who ever has the best solution.
There is a lot of sorting algorithms. So far, we have covered selection and insertion sort.
However, we only covered how selection sort is implemented using an array. Every sorting
algorithm implemented using an array can also be implemented using a linked list. In this
assignment, you will implement the selection sort algorithm using a linked list instead of an
array.
You will first create an interface for handling string items. Basically, you will need to do the
following:
• Create an interface named item.h
• Define a type Item represents a char * (i.e., a c-string)
• Implement a less function that compares between two strings and return which one
should precede.
Then, you will add to the linked list interface the following functions:
• linkedlistScanInit:
• The header of the function will be linkedlistScaninit(pLinkedList list).
• The function takes a linkedlist as input, reads from the command line a set of strings, and store them inside the linkedlist. You can call the function linkedlistAddNode to add a node to the end of the linked list.
• linkedlistShow:
• The header of the function will be linkedlistShow(pLinkedList list).
• The function takes a linkedlist as input, loops through the linkedlist and show what inside it
Finally,the main that is used is as follows: (DON\'T CHANGE )
//Include the needed headers here
int main(void)
{
pLinkedList list = linkedlistInitDefault();
linkedlistScanInit(list);
linkedlistShow(list);
destroy(&list);
return 0;
}
You will use the code in linkedListSt.h and linkedListSt.c
where the linkedListSt.h is as follows:
typedef struct node Node,* pNode;
#include \"item.h\"
struct node
{
Item item;
pNode next;
};
struct linkedlist
{
pNode front;
int size;
pNode iterator;
//Could add here any other thing we need
};
typedef struct linkedlist LinkedList, *pLinkedList;
pLinkedList linkedlistInitDefault();
int linkedlistGetSize(pLinkedList list);
void linkedlistAddNodeBack(pLinkedList list, Item item);
void linkedlistDestroy(pLinkedList *list);
//////////////////////////////////////////////////////
linkedListSt.c File as follows:
#include <stdio.h>
#include <stdlib.h>
#include \"linkedListSt.h\"
pLinkedList linkedlistInitDefault()
{
pLinkedList list = malloc(sizeof(LinkedList));
list->front = NULL;
list->iterator = NULL;
list->size = 0;
return list;
}
int linkedlistGetSize(pLinkedList list)
{
return list->size;
}
void linkedlistAddNodeBack(pLinkedList list, Item item)
{
if(list->front == NULL)
{
list->front = malloc(sizeof(Node));
if(list->front != NULL)
{
list->front->next = NULL;
list->front->item = item;
list->size++;
}
}
else
{
pNode current = list->front;
while(current->next != NULL)
{
current = current->next;
}
current->next = malloc(sizeof(Node));
if(current->next!=NULL)
{
current->next->item = item;
current->next->next = NULL;
list->size++;
}
}
}
void linkedlistDestroy(pLinkedList *list)
{
if((*list) != NULL)
{
printf(\"list is not null\ \");
if((*list)->front == NULL)
{
free((*list));
(*list) = NULL;
}
else
{
printf(\"looping to delete all nodes\ \");
pNode current = (*list)->front;
pNode next = (*list)->front;
while(current!=NULL)
{
printf(\"I am deleting here\ \");
next = current->next;
free(current);
current = next;
}
printf(\"setting the list to null\ \");
free((*list));
(*list) = NULL;
}
}
}
// The End
Solution
#include


