Data structures play a central role in computer science and are the cornerstones of efficient algorithms. Knowledge in this area has been at the kernel of related curriculums. This course aims at exploring the principles and methods in the design and implementation of various data structures and providing students with main tools and skills for algorithm design and performance analysis. Topics covered by this course range from fundamental data structures to recent research results. "Data Structures and Algorithm Design Part I" is an introductory course focusing on basic data structures, including vectors, lists, stacks, queues, binary trees, and graphs. They are important in programming practice, as well as fundamental to our advanced course: "Part II."
Overview
Syllabus
- 01.Introduction I
- A.Computation
- B.Computational_Models
- C.Big_o
- 01.Introduction II
- D.Algorithm_analysis
- E.Iteration+Recursion
- F.Dynamic_Programming
- Homework
- 02.Vector I
- A.Interface+Implementation
- B.extendable_vector
- C.unsorted_Vector
- D1.Sorted_Vector.uniquify
- D2.Sorted_Vector.binary_search
- 02.Vector II
- D3.Sorted_Vector.fibonaccian_search
- D4.Sorted_Vector.binary_search_optimized
- D5.Sorted_Vector.interpolation_search
- E.Bubblesort
- F.Mergesort
- Homework
- 03.List
- A.interface+Implementation
- B.Unsorted_list
- C.Sorted_list
- D.Selectionsort
- E.Insertionsort
- (xd):LightHouse
- Homework
- 04.Stack+Queue
- A.stack-ADT+implementation
- C1.stack-App-conversion
- C2.stack-App-parentheses
- C3.stack-App-permutation
- C4.stack-App-infix
- C5.stack-App-rpn
- D.Queue-ADT+implementation
- Homework
- 05.Binary_Tree
- A.Tree
- B.Representation
- C.Binary_Tree
- D.Implementation
- E1.Preorder
- E2.Inorder
- E4.LevelOrder
- E5.reconstruction
- Homework
- 06.Graph
- A.Introduction
- B1.Adjacency_Matrix
- C.BFS
- D.DFS
- Homework
Taught by
Junhui Deng