Take the Singly Linked List code we worked on in class, and extend it as follows:
Some people have implemented additional helper functions, which is certainly welcome. For example, you may want to implement a “seeker()” function, perhaps as follows:
This is essentially testing your ability to organize code into functions, and to call those functions.
Having a menu-driven interface (just text will do), will enable more selective testing of your linked list's functionality. Note that when the program is run, the menu should be the very first thing the user sees, and no list should be in existence until (and if) a user decides to do so. The menu should also have some sort of exit option.
Be sure to add/commit/push any project code to your personal repository.
I plan to wander around and check off with each person as part of this project's evaluation, so be prepared to show me your code, perform a sample run, and potentially answer any questions I may have about the code.
Points I will look to evaluate:
Potential sample output of this desired program (you have additional options to implement):
lab46:~/src/data/sllmenu$ ./sllmenu Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 0 NULL Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 1 Empty List Detected! Enter Value for new node: 7 Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 1 (0) 7 -> NULL Enter position to Append after (0-0): 0 Enter Value for new node: 9 Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 2 (0) 7 -> (1) 9 -> NULL Enter position to Insert before (0-1): 0 Enter value for new node: 2 Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 0 (0) 2 -> (1) 7 -> (2) 9 -> NULL Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 3 (0) 2 -> (1) 7 -> (2) 9 -> NULL Enter position of node to remove: 0 Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 0 (0) 7 -> (1) 9 -> NULL Linked List Operations ---------------------- 0. Display the list 1. Append a new node 2. Insert a new node 3. Remove a node 9. Quit Enter Selection: 9 lab46:~/src/data/sllmenu$