$29
Objectives:
• Learn how to create and use a linked list ADT
Description:
1. Node * createLinkedList(int numOfNodes)
o Create a linked list using createNode(key) where 1 ≤ key ≤ 10, using rand().
o Insert the newly created Node at the head of the linked list.
o Return: the head of the linked list.
2. Node * createNode(int num)
o This function will create a Node struct using malloc() and initialize the Node key with num variable and
Node next with NULL.
typedef
{
o Return: the newly created Node.
struct nodeL
3.
Node * findNode(int searchKey, Node * head)
int key;
o Input: an integer search key, and first node of the linked list.
* next;
o Search the Node that contains the searchKey.
struct nodeL
o Return: Node pointer to the first found key node or NULL if not found.
} Node;
4.
void displayList(Node *head)
o Input: first node of the linked list.
o Display the keys in the linked list.
5. void freeList(Node *head)
o Input: first node of the linked list.
o Free all the Nodes in the linked list.
6. Main function
o Create a linked list with 15 Nodes using createLinkedList().
o Display your linked list with the displayList().
o Print out the result as shown in the Example below and use what return back from findNode().
o Free up the linked list using freeList().
Every user-defined function must have a comment describing:
• What function does;
• What parameter values are;
• What value it returns.
Example from the terminal window:
$ ./a.out
My linked list’s keys: 2 3 4 5 10 7 8 9 4 3 1 2 3 4 6
Enter an integer key between 1 to 10: 4
The key 4 is found, and the next node of the key 4 Node is located at 0x7ffeefbff4d8.
$ ./a.out
My linked list’s keys: 2 3 4 5 6 7 8 9 3 9 4 5 6 7 2
Enter an integer key between 1 to 10: 10
The key 10 is not found!
1
Section A
Grading Criteria:
•
Main program:
4 points
•
createLinkedList function:
10 points
•
createNode function:
4 points
•
findNode function:
4 points
•
displayList function:
4 points
•
freeList function:
4 points
Note:
• If your code does not compile with –Wall and –Werror, you will receive a zero for this assignment.
• You need to finish at least three peer reviews within three days of this lab. Otherwise, you will get a 20% penalty.
• You will lose points if you don’t have enough comments.
2