
Explore linked lists in C by building a library of functions for creating and manipulating lists, packaging it as a reusable library, and documenting it to showcase in your portfolio.
An introduction to Linked Lists. After this lecture you will be able to describe what linked lists are and why we might use them.
Learn to implement a linked list in C by defining a node struct with value and next pointer, linking nodes A, B, and C, and traversing to print the list.
Explore inserting nodes into a linked list stored on the heap, handling empty lists and updating the head, with insertion at the head and at the tail.
Implement delete at head and delete at tail in a C linked list, including empty-list handling, memory free, a two-pointer traversal, and returning the new head after each operation.
Compute the length of a linked list iteratively and recursively, by traversing nodes and counting or using base cases. Implement search, count matches, and replace operations to modify nodes.
Delete the first matching node in a linked list, handling empty lists, head cases, and middle deletions with a previous pointer, returning the new head and a deleted flag.
Learn to delete all matching nodes from a linked list in one pass by handling head and middle cases, improving efficiency and performance with single traversal.
Learn how to append one linked list to another by traversing to the tail and handling empty lists. Then reverse a linked list by flipping pointers from head to tail.
Learn to sort a linked list using bubble sort by swapping node values rather than pointers, and remove duplicates with nested loops while traversing the list.
Learn to implement delete all nodes and insert after a value in a linked list, including handling empty lists, inserting after a target value, and recursively deleting the entire list.
Practice challenge questions help you implement list operations in C by adding corresponding nodes from two lists, duplicating a list on the heap, and merging two sorted lists.
Explore practice challenge solutions for linked lists in C, including add lists, duplicate list, and merge sorted lists, using recursion and thorough tests.
Compare a linked list to a dynamically allocated array with 10,000 elements, deleting head 10,000 times, showing linked lists outperform arrays in head deletions and illustrating why lists matter.
Turn a collection of linked list functions into a reusable C library with header and implementation files. Learn component based architecture, interfaces, and modular compilation to enable maintainable, extensible code.
Learn how to document a C library with inline comments and external docs, compare in-code and external documentation, and use a document generator to produce HTML, PDF, and LaTeX formats.
Demonstrate problem-solving with linked lists by building and extending a portfolio-ready limitless library. Showcase data structures, algorithms, and real-world use cases like playlists, undo stacks, and task lists.
Learn to host a free portfolio website with GitHub pages by creating a username.github.io repository, deploying with GitHub actions, and adding a simple index.html and styles.css.
In this course you will be taught through step-by-step live coding examples how to create and use a library of functions for working with Linked Lists in the C programming language!
Linked Lists are an important type of data structure in computer science and computer programming, so before we walkthrough how to create and use them, we'll also cover what Linked Lists are, how they work, and some practical applications of Linked Lists. The bulk of the course is spent on learning how to work with Linked Lists using C, with over 3 hours of video covering a series of common functionalities explaining step-by-step how they are implemented. We'll also teach you how to package your functions together into a re-usable library, and how to document your code.
By the end of the course you will have a C library of Linked List functions that will help you build a great programming portfolio!
Linked List functionalities that are covered include:
Creating a linked list
Inserting nodes on the head and tail of a linked list
Deleting nodes from the head and tail of a linked list
Sorting a linked list
Deleting matching nodes from a linked list
Deleting duplicate nodes from a linked list
Reversing a linked list
Duplicating a linked list
Determining if a value is in a linked list
...and many others, over 20 functions in total.