• Home
  • University of the People
  • Data Structures (proctored course) CS 3303
  • Data Structures

Data Structures

CS 3303-01 Data Structures - AY2022-T5 Dashboard My courses CS 3303-01 - AY2022-T5 30 June - 6 July Learning Guide Unit 3 Learning Guide Unit 3 Unit 2 Learning Guide Overview Unit 3: Lists, Stacks, Queues, and Dictionaries Topics: Lists and the differences between array and linked list based implementations Singly versus doubly linked lists Stacks and push and pull operations Queues and enqueue and dequeue operations Circular queues and doubly linked list queues Dictionaries Learning Objectives: Understand the basic characteristics of list data structures including terms such as: o elements, empty, head, tail, length Recognize the difference between array based list and linked list implementations and be able to implement basic lists and list operations such as the ability to append, insert, and remove list elements Understand the role of dynamic memory allocation in linked list implementations Understand the role of the freelist and how it can be used in list implementations Be able to compare and contrast characteristics between Doubly and Singly linked lists Understand and be able to implement the Stacks list structure including both array and linked list based stacks Recognize operations within stacks such as a push to put a new item on the stack and a pop to take an item off the stack Understand and be able to implement the Queue list structure including: o Be able to articulate the difference between an enqueue and dequeue operation and be able to develop a stack algorithm that implements these operations Understand and be able to implement both array based and linked list based queues Understand the unique features of a circular queue Understand the dictionary implementation of the list data structure Learning Guide Unit 3 Unit 2 Learning Guide Introduction Chapter four introduces the first of the fundamental data structures that will be covered in this course. We will look at lists, stacks, and queues. Lists, stacks, and queues are all structures that we use to maintain a list of items. There are many examples of lists that we use in everyday life. If we make a shopping list, it typically includes the items that we need to purchase at the market. Sometimes lists have no particular order and other times we might attempt to arrange the items in the list in a particular sequence. In computer science an ordered list is simply one where each item in the list has a position in the list. As explained in our text there are two basic approaches to implementing a list the first is with an array and the other is with a linked list. The array is a structure that is initialized to hold a particular number of items. This has advantages in that it relatively easy to implement, but it can also be inefficient. For example, if you created an array with 100 elements and then only populated it with 3 or 4 items then much of the array will be unused wasting memory and other resources. On the other hand if