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