Uploaded by 이가은

DS OT 2023

advertisement
Data Structure
Week 1
Kim, Mucheol
DATA INTELLIGENCE LAB, CAU
1
Class Overview
•
Instructor : Mucheol Kim, 김무철 (kimm@sw.cau.ac.kr)
•
Class : Data Structure
•
Book : Fundamentals of Data Structures in C, 2nd edition: Ellis Horowitz,
Sartaj Sahni
•
TA : Kim, Jaeeun & Yu, Hyunwuk (jekim9902@gmail.com)
Kim,
Mucheol
CAU ‘School of Software’ CSE Data Intelligence Lab.
Web Tech. Information Retrieval Big Data
Basketball Bicycle
2
Class Overview
•
•
Grade : (Tentative)
Attendance(10%),
Assignment(30%),
Mid-Term(30%)
Final Exam(30%)
1/4 number of absences => F!!!!!!!!!!
3
Course Overview
• Course Policy
 Cheating in homework, quiz and exam will not be tolerated
 An automatic F will be assigned to any students caught cheating
 Everything you turn in must be your own doing
• Collaboration is encouraged; however, all code that you
write MUST represent your own work.
 You must type in and edit your own code.
Course Overview
• Theoretical Understanding
 Linear Data Structures
 Non-linear Data Structures
 Basic Algorithms
• Implementation(Coding Ability)
 With C Language
 Why?
DATA INTELLIGENCE LAB, CAU
5
What is “Data Structure”?
• By Wikipedia
 In computer science, a “data structure” is a data organization,
management, and storage format that enables efficient access
and modification.
 A data structure is a collection of data values, the relationships
among them, and the functions or operations that can be
applied to the data.
 Example
 Array
 Linked List
 Record
 Union
 Object
How can we implement data
structures?
• By wikipedia
 Data structures are generally based on the ability of a computer
to fetch and store data at any place in its memory
 The array and record data structures are based on computing
the addresses of data items with arithmetic operations
 While the linked data structures are based on storing addresses of data
items within the structure itself.
 The implementation of a data structure usually requires writing a
set of procedures that create and manipulate instances of that
structure.
Why this course?
• Learn how to organize data into structures
• Design good data structures
 For efficiently manipulate data
 So as to design efficient algorithms
• Build solid background for other courses:
 Algorithms, Compilers, Object-oriented programming and so on.
What will we learn?
• Learn some basic data structures
 Arrays, Stacks, Queues, Linked Lists, Trees, and Graphs, etc.
• Also learn some basic algorithms
 Sorting, String Matching, Minimum spanning trees, Matrix
multiplication, and Shortest paths, etc
Course Objective
• Common forms of data representation
 Static vs. Dynamic
 Dense vs. Sparse
• Select “Good” Data Structure & “Good” Algorithm
 Programming = Data Structures + Algorithms
• Evaluation
 Time and Space Trade-off
Class Overview
week 1
course introduction - explanation of course syllabus and basic concepts
week 2
Data Abstraction, review of C pointers
week 3
Arrays and Structures - Polynomials and Sparce Matrices
week 4
Stacks - Stacks using dynamic arrays and it`s application Queues - Circular queues Using Dynamic arrays
week 5
Linked Lists - Singly Linked Lists and Chains, Linked Stacks and Queues
week 6
Doubly Linked List, Tree Introduction
week 7
Binary Tree and Binary Tree Traversal
week 8
Mid-Term
week 9
Heaps - Max Heaps, Insertion and Deletion of Min/Max Heaps
week 10
Binary Search Tree - Insertion and Deletion and Joining
week 11
Graph Introduction and Elementary Graph Operations - Depth First Search and Breadth First Search
week 12
Graph - Connected Components and Spanning Trees
week 13
Shortest paths and Transitive Closure
week 14
Sort - Insert Sort, Selection Sort, Merge Sort, Quick Sort
week 15
Hash Table
week 16
Final Term
11
Download