Week 5: Data Structures in C

week5
c
data structures
linked lists
trees
stacks
queues

Hello and welcome to CS50!

We’re onto the fifth week of C! This week we will be learning about data structures in C. Data structures are a fundamental concept in computer science, and understanding how they work is essential for writing efficient and reliable programs. This week we will be learning about linked lists, trees, stacks, and queues, and how to implement them in C.

Linked lists are a type of data structure that consists of a sequence of elements, each of which points to the next element in the sequence. They are commonly used to implement dynamic data structures, such as stacks and queues, and to optimize the performance of your programs. This week we will be learning how to declare, initialize, and use linked lists, as well as how to avoid common pitfalls when working with them.

Trees are a type of data structure that consists of a collection of nodes, each of which has a value and zero or more child nodes. They are commonly used to implement hierarchical data structures, such as file systems and XML documents, and to optimize the performance of your programs. This week we will be learning how to declare, initialize, and use trees, as well as how to avoid common pitfalls when working with them.

Stacks are a type of data structure that consists of a collection of elements, each of which can be added or removed from the top of the stack. They are commonly used to implement last-in-first-out (LIFO) data structures, such as function call stacks and undo buffers, and to optimize the performance of your programs. This week we will be learning how to declare, initialize, and use stacks, as well as how to avoid common pitfalls when working with them.

Queues are a type of data structure that consists of a collection of elements, each of which can be added to the back of the queue and removed from the front of the queue. They are commonly used to implement first-in-first-out (FIFO) data structures, such as job queues and message queues, and to optimize the performance of your programs. This week we will be learning how to declare, initialize, and use queues, as well as how to avoid common pitfalls when working with them.

Resources:

Section-Specific:

Course-wide:

Office Hours:

  • My Office Hours: Friday 10:30AM-11:30AM in HSA Building 4th Floor
  • All-Staff Office Hours: Sunday 3-5PM in Widener Library
  • Office Hours Schedule
  • If you have any questions at all, email me!

REMINDER: No Class, Section, or OH Next Week!