Skip to content

Arisa-Kaewsuan/Datastructure_Java

Repository files navigation

Data Structure with Java 🚀

🔗 วิธี add Project จาก Eclipse ขึ้น Github


  •   Data Structure คืออะไร ?
  •   ทำไมต้องเรียนวิชา Data Structure ?
  •   วิชา Data Structure เรียนอะไรบ้าง เพราะอะไร ?
  •   BigO คืออะไร ?
  •   ทำไมต้องวิเคราะห์อัลกิริทึม (Algorithm Analysis) ?
  •   ทำไมต้องใช้ Big-O วิเคราะห์อัลกิริทึม (Algorithm Analysis) ทำไมไม่เขียนโปรแกรมจับเวลาทำงานเอา ?
  •   How to Algorithm Analysis ?
  •   Dynamic Data Structure คืออะไร ?
  •   Dynamic Programming คืออะไร ?

  •   Recursive คืออะไร เรียนไปทำไม ?
  •   เราควรใช้ loop ตอนไหน และตอนไหนควรใช้ Recursive ?
  •   Exerxise 1  :  Fibonacci
  •   Exerxise 2  :  Factorial
  •   Exerxise 3  :  Golden Ratio
  •   Exerxise 4  :  Hanoi Tower

  •   เราสามารถแยกโครงสร้างข้อมูล (Data Structure) ได้เป็น 2 ประเภทใหญ่ๆ คือ

    1.  Linear Lists  :  ข้อมูลมีความสัมพันธ์เรียงต่อเนื่องกัน  ได้แก่  Array ,ArrayList ,Linked List ,Stack ,Queue
    
    2.  Non-Linear Lists  :  ข้อมูลไม่มีความสัมพันธ์แบบเรียงต่อเนื่องกัน  ได้แก่  Tree , Graph
    
    •   ArrayList คืออะไร ?
    •   Exerxise 1  :  ArrayList
    •   Exerxise 2  :  Particle
    •   Linked List คืออะไร ดีกว่า ArrayList ยังไง มีกี่แบบ ?
    •   Linked List ประยุกต์ใช้ทำอะไรได้บ้าง ?
    •   Exerxise 1  :  Linked List
    •   Exerxise 2  :  Doubly Linked List
    •   Stack คืออะไร ดีกว่า Linked List ยังไง ?
    •   Exerxise 1  :  postfix calculator
    •   Exerxise 2  :  check parenthesis
    •   Queue คืออะไร มีกี่แบบ อะไรบ้าง อธิบายconceptของQueue ?
    •   Queue กับ piority Queue ต่างกันยังไง ?
    •   Exerxise 1  :  เขียนโปรแกรมสร้าง Queue โดยใช้ Array
    •   Exerxise 2  :  เขียนโปรแกรมสร้าง Maze
    •   Exerxise 3  :  เขียนโปรแกรมสร้าง Queue โดยใช้ Linked List

  •   เราสามารถแยกโครงสร้างข้อมูล (Data Structure) ได้เป็น 2 ประเภทใหญ่ๆ คือ

    1.  Linear Lists  :  ข้อมูลมีความสัมพันธ์เรียงต่อเนื่องกัน  ได้แก่  Array ,ArrayList ,Linked List ,Stack ,Queue
    
    2.  Non-Linear Lists  :  ข้อมูลไม่มีความสัมพันธ์แบบเรียงต่อเนื่องกัน  ได้แก่  Tree , Graph
    
    •   มาทำความเข้าใจ Tree / Binary Tree / Binary Search Tree กันก่อนว่าคืออะไร ?
    •   Exerxise 1  :  เขียนโปรแกรมสร้าง Tree
    •   Exerxise 2  :  เขียนโปรแกรมสร้าง Tree มีฟังก์ชั่น Tree Traversal
    •   Exerxise 3  :  AVL Tree
    •   Heap คืออะไร ?
    •   Exerxise 1  :  เขียนโปรแกรมสร้าง maxHeap
    •   Hash map คืออะไร ?
    •   Hash function คืออะไร ?
    •   Hash Table คืออะไร ?
    •   ยกตัวอย่าง Hash  :  SHA / MD5
    •   การแก้การชนมีกี่แบบ ?
    •   Exerxise 1  :  birthdayParadox
    •   Exerxise 2  :  marriedSelection
    •   Graph คืออะไร ?
    •   Exerxise 1  :  เขียนโปรแกรมสร้าง Graph ด้วยวิธี Adjacent List
    •   Exerxise 2  :  เขียนโปรแกรมสร้าง Graph ด้วยวิธี Adjacent Matrix