wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

แบบทดสอบความรู้โครงสร้างข้อมูล

Total questions: 60

Worksheet time: 30mins

Name
Class
Date
1.

ข้อใดคือความหมายของ Abstract Data Type (ADT) ที่ถูกต้องที่สุด

a)

ชนิดข้อมูลที่ไม่สามารถมองเห็นได้

b)

การกำหนดการทำงานของข้อมูลโดยไม่สนใจรายละเอียดการนำไปใช้

c)

ข้อมูลที่เก็บไว้ในหน่วยความจำ

d)

การเขียนโปรแกรมแบบ Object-Oriented

e)

ข้อมูลที่มีความซับซ้อนสูง

2.

การวิเคราะห์ Time Complexity ของอัลกอริทึมต่อไปนี้ จะได้ผลลัพธ์เป็น Big O อะไร for i = 1 to n: for j = 1 to i: print(i * j)

a)

O(n)

b)

O(n²)

c)

O(log n)

d)

O(n log n)

e)

O(2ⁿ)

3.

ข้อใดเป็นข้อดีของ Linked List เมื่อเปรียบเทียบกับ Array

a)

การเข้าถึงข้อมูลโดยตรงทำได้เร็วกว่า

b)

ใช้หน่วยความจำน้อยกว่า

c)

การเพิ่มและลบข้อมูลทำได้ง่ายกว่า

d)

การค้นหาข้อมูลทำได้เร็วกว่า

e)

การจัดเรียงข้อมูลทำได้ง่ายกว่า

4.

ในการใช้งาน Stack หลักการ LIFO หมายความว่าอย่างไร

a)

Last Input First Output

b)

Last In First Out

c)

Low Input First Output

d)

Limited In First Out

e)

Linear Input First Output

5.

ข้อใดคือการประยุกต์ใช้ Stack ที่เหมาะสมที่สุด

a)

การจัดคิวรอซื้อบัตรคอนเสิร์ต

b)

การตรวจสอบ Balanced Parentheses

c)

การค้นหาข้อมูลในฐานข้อมูล

d)

การเรียงลำดับข้อมูล

e)

การเก็บข้อมูลแบบถาวร

6.

Queue ใช้หลักการใดในการจัดการข้อมูล

a)

LIFO (Last In First Out)

b)

FIFO (First In First Out)

c)

Random Access

d)

Binary Search

e)

Hash Function

7.

ข้อใดคือข้อเสียของ Array เมื่อเปรียบเทียบกับ Linked List

a)

การเข้าถึงข้อมูลช้ากว่า

b)

ขนาดคงที่ไม่สามารถเปลี่ยนแปลงได้ (ใน Static Array)

c)

ใช้หน่วยความจำมากกว่า

d)

การค้นหาข้อมูลช้ากว่า

e)

การเรียงลำดับทำได้ยากกว่า

8.

ในการวิเคราะห์ Space Complexity ข้อใดถือเป็นการใช้หน่วยความจำแบบ O(1)

a)

การสร้าง Array ขนาด n

b)

การสร้าง Linked List มี n nodes

c)

การใช้ตัวแปรเพียงไม่กี่ตัวไม่ขึ้นกับขนาดข้อมูล

d)

การสร้าง Binary Tree มี n nodes

e)

การสร้าง Hash Table ขนาด n

9.

ข้อใดคือลักษณะของ Circular Linked List

a)

มี head และ tail ที่แยกจากกัน

b)

node สุดท้ายชี้กลับไปที่ node แรก

c)

แต่ละ node มี pointer สองตัว

d)

ข้อมูลจัดเรียงจากน้อยไปมาก

e)

ไม่สามารถเพิ่มหรือลบข้อมูลได้

10.

การเลือกใช้ Dynamic Array แทน Static Array เหมาะสมในกรณีใด

a)

เมื่อทราบจำนวนข้อมูลที่แน่นอน

b)

เมื่อต้องการประหยัดหน่วยความจำ

c)

เมื่อไม่ทราบจำนวนข้อมูลล่วงหน้า

d)

เมื่อต้องการความเร็วในการเข้าถึงข้อมูล

e)

เมื่อข้อมูลไม่เปลี่ยนแปลง

11.

ข้อใดคือ Time Complexity ของการค้นหาข้อมูลใน Linked List

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n log n)

e)

O(n²)

12.

Priority Queue ใช้หลักการใดในการจัดลำดับข้อมูล

a)

เวลาที่เข้ามาก่อนหลัง

b)

ลำดับตัวอักษร

c)

ความสำคัญหรือ Priority ของข้อมูล

d)

ขนาดของข้อมูล

e)

ลำดับการใส่ข้อมูล

13.

ข้อใดคือข้อดีหลักของการใช้ Deque (Double-ended Queue)

a)

ใช้หน่วยความจำน้อย

b)

เพิ่มและลบข้อมูลได้ทั้งสองด้าน

c)

ค้นหาข้อมูลได้เร็ว

d)

จัดเรียงข้อมูลอัตโนมัติ

e)

ป้องกันการ Overflow

14.

ข้อใดคือตัวอย่างการใช้งาน Queue ในระบบคอมพิวเตอร์

a)

การเก็บประวัติการเรียกใช้ฟังก์ชัน

b)

การจัดการงานพิมพ์ในเครื่องพิมพ์

c)

การตรวจสอบวงเล็บในสูตรคณิตศาสตร์

d)

การเก็บรหัสผ่าน

e)

การแปลงเลขฐานสิบเป็นเลขฐานสอง

15.

ข้อใดคือความแตกต่างหลักระหว่าง Array และ Linked List

a)

Array ใช้หน่วยความจำต่อเนื่อง, Linked List ไม่ต่อเนื่อง

b)

Array เร็วกว่า Linked List เสมอ

c)

Linked List ใช้หน่วยความจำน้อยกว่า Array เสมอ

d)

Array ไม่สามารถเปลี่ยนขนาดได้เลย

e)

Linked List ไม่สามารถเข้าถึงข้อมูลแบบสุ่มได้

16.

Binary Search สามารถใช้ได้กับข้อมูลในลักษณะใด

a)

ข้อมูลที่เรียงลำดับแล้ว

b)

ข้อมูลที่ไม่เรียงลำดับ

c)

ข้อมูลที่มีการซ้ำ

d)

ข้อมูลที่เป็นตัวอักษรเท่านั้น

e)

ข้อมูลที่เป็นตัวเลขเท่านั้น

17.

Time Complexity ของ Binary Search คือเท่าใด

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n log n)

e)

O(n²)

18.

ข้อใดคือข้อดีของ Linear Search เมื่อเปรียบเทียบกับ Binary Search

a)

เร็วกว่าเสมอ

b)

ใช้หน่วยความจำน้อยกว่า

c)

ใช้ได้กับข้อมูลที่ไม่เรียงลำดับ

d)

แสดงผลลัพธ์ได้ถูกต้องกว่า

e)

เขียนโปรแกรมได้ยากกว่า

19.

Bubble Sort มี Time Complexity ในกรณี Worst Case เป็น

a)

O(n)

b)

O(log n)

c)

O(n log n)

d)

O(n²)

e)

O(2ⁿ)

20.

ข้อใดคือหลักการทำงานของ Selection Sort

a)

เปรียบเทียบข้อมูลคู่ที่อยู่ติดกันและสลับที่

b)

หาค่าน้อยที่สุดและนำมาไว้ตำแหน่งแรก

c)

แบ่งข้อมูลออกเป็นสองส่วนแล้วรวมกัน

d)

เลือก pivot แล้วแบ่งข้อมูลออกเป็นสองส่วน

e)

สร้าง heap แล้วดึงข้อมูลออกทีละตัว

21.

Insertion Sort มีประสิทธิภาพดีที่สุดในกรณีใด

a)

ข้อมูลเรียงลำดับย้อนกลับ

b)

ข้อมูลเรียงลำดับแล้ว

c)

ข้อมูลปนกันแบบสุ่ม

d)

ข้อมูลมีขนาดใหญ่มาก

e)

ข้อมูลมีค่าซ้ำกันเยอะ

22.

Merge Sort ใช้หลักการใดในการทำงาน

a)

Greedy Algorithm

b)

Dynamic Programming

c)

Divide and Conquer

d)

Brute Force

e)

Backtracking

23.

ข้อใดคือข้อดีของ Quick Sort

a)

Time Complexity เป็น O(n²) เสมอ

b)

ใช้หน่วยความจำเพิ่มเติมมาก

c)

ทำงานได้เร็วในกรณีเฉลี่ย

d)

ไม่ขึ้นกับการเลือก Pivot

e)

เหมาะกับข้อมูลขนาดเล็กเท่านั้น

24.

การเลือก Pivot ใน Quick Sort มีผลต่อประสิทธิภาพอย่างไร

a)

ไม่มีผลต่อประสิทธิภาพเลย

b)

การเลือกที่ดีจะทำให้ประสิทธิภาพดีขึ้น

c)

ต้องเลือก Pivot เป็นค่าที่มากที่สุดเสมอ

d)

ต้องเลือก Pivot เป็นค่าที่น้อยที่สุดเสมอ

e)

การเลือกที่ไม่ดีจะทำให้โปรแกรมผิดพลาด

25.

Heap Sort ใช้โครงสร้างข้อมูลใดในการทำงาน

a)

Stack

b)

Queue

c)

Binary Heap

d)

Linked List

e)

Hash Table

26.

ข้อใดคือข้อดีของ Merge Sort เมื่อเปรียบเทียบกับ Quick Sort

a)

ใช้หน่วยความจำน้อยกว่า

b)

เร็วกว่าในทุกกรณี

c)

มี Time Complexity คงที่ O(n log n)

d)

เขียนโปรแกรมได้ง่ายกว่า

e)

ไม่ต้องใช้ Recursion

27.

การประยุกต์ใช้ Binary Search ในการหาตำแหน่งที่เหมาะสมสำหรับการแทรกข้อมูลใหม่ เรียกว่าอะไร

a)

Binary Insertion

b)

Interpolation Search

c)

Exponential Search

d)

Jump Search

e)

Ternary Search

28.

ข้อใดคือเงื่อนไขสำคัญในการใช้ Binary Search อย่างมีประสิทธิภาพ

a)

ข้อมูลต้องเป็นตัวเลขเท่านั้น

b)

ข้อมูลต้องเรียงลำดับแล้ว

c)

ข้อมูลต้องมีจำนวนเป็นเลขคู่

d)

ข้อมูลต้องไม่มีค่าซ้ำ

e)

ข้อมูลต้องเก็บใน Array เท่านั้น

29.

Stable Sorting Algorithm หมายความว่าอย่างไร

a)

อัลกอริทึมที่ไม่เกิดข้อผิดพลาด

b)

รักษาลำดับเดิมของข้อมูลที่มีค่าเท่ากัน

c)

ใช้หน่วยความจำคงที่

d)

Time Complexity ไม่เปลี่ยนแปลง

e)

ทำงานได้เร็วที่สุด

30.

ข้อใดคือตัวอย่างของ Stable Sorting Algorithm

a)

Quick Sort

b)

Heap Sort

c)

Selection Sort

d)

Merge Sort

e)

Shell Sort

31.

ข้อใดคือคุณสมบัติของ Binary Tree

a)

แต่ละ node มี child ได้ไม่เกิน 2 ตัว

b)

แต่ละ node มี child ได้เท่าไหร่ก็ได้

c)

ต้องมี node อย่างน้อย 3 ตัว

d)

ข้อมูลต้องเรียงลำดับ

e)

ต้องเป็น Complete Tree เสมอ

32.

ข้อใดคือความแตกต่างระหว่าง Complete Binary Tree และ Full Binary Tree

a)

ไม่มีความแตกต่าง

b)

Complete Tree เต็มทุก level ยกเว้น level สุดท้าย, Full Tree ทุก node มี 0 หรือ 2 children

c)

Complete Tree ใหญ่กว่า Full Tree เสมอ

d)

Full Tree มี node มากกว่า Complete Tree

e)

Complete Tree ใช้สำหรับค้นหา, Full Tree ใช้สำหรับจัดเรียง

33.

ในการ Inorder Traversal ของ Binary Search Tree จะได้ผลลัพธ์เป็นอย่างไร

a)

ข้อมูลเรียงจากมากไปน้อย

b)

ข้อมูลเรียงจากน้อยไปมาก

c)

ข้อมูลแบบสุ่ม

d)

ข้อมูลแบบ Preorder

e)

ข้อมูลแบบ Postorder

34.

ข้อใดคือลำดับการเยี่ยมชม node ใน Preorder Traversal

a)

Left → Root → Right

b)

Root → Left → Right

c)

Left → Right → Root

d)

Right → Root → Left

e)

Root → Right → Left

35.

Time Complexity ของการค้นหาข้อมูลใน Balanced Binary Search Tree คือ

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n log n)

e)

O(n²)

36.

ข้อใดคือข้อดีหลักของ Binary Search Tree เมื่อเปรียบเทียบกับ Array

a)

ใช้หน่วยความจำน้อยกว่า

b)

การแทรกและลบข้อมูลทำได้เร็วกว่า

c)

การเข้าถึงข้อมูลแบบสุ่มทำได้เร็วกว่า

d)

เก็บข้อมูลได้มากกว่า

e)

ไม่ต้องใช้ pointer

37.

ในกรณีที่ Binary Search Tree ไม่ balanced จะส่งผลกระทบอย่างไร

a)

ไม่มีผลกระทบ

b)

ใช้หน่วยความจำมากขึ้น

c)

Time Complexity ของการค้นหาจะแย่ลง

d)

ไม่สามารถเพิ่มข้อมูลได้

e)

ข้อมูลจะสูญหาย

38.

Decision Tree ใช้สำหรับวัตถุประสงค์ใดหลัก

a)

การเก็บข้อมูลแบบเรียงลำดับ

b)

การตัดสินใจและการแก้ปัญหา

c)

การคำนวณทางคณิตศาสตร์

d)

การจัดเรียงข้อมูล

e)

การค้นหาข้อมูล

39.

ข้อใดคือการประยุกต์ใช้ Decision Tree ในระบบงานจริง

a)

การจัดเก็บไฟล์ในคอมพิวเตอร์

b)

การวินิจฉัยโรคในระบบแพทย์

c)

การคำนวณเงินเดือน

d)

การจัดการฐานข้อมูล

e)

การเขียนโปรแกรม

40.

ข้อใดคือวิธีการลบ node ที่มี child 2 ตัวใน Binary Search Tree

a)

ลบทันทีไม่ต้องปรับเปลี่ยน

b)

แทนที่ด้วย Inorder Successor หรือ Inorder Predecessor

c)

แทนที่ด้วย Root node

d)

แทนที่ด้วย Leaf node ใดก็ได้

e)

ไม่สามารถลบได้

41.

Height ของ Binary Tree ที่มี n nodes ในกรณี Balanced Tree จะเป็นเท่าใด

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n log n)

e)

O(n²)

42.

ข้อใดคือความหมายของ Leaf Node ใน Tree

a)

Node ที่อยู่ระดับบนสุด

b)

Node ที่มี child มากที่สุด

c)

Node ที่ไม่มี child

d)

Node ที่มี parent 2 ตัว

e)

Node ที่เก็บข้อมูลสำคัญ

43.

Expression Tree ใช้สำหรับวัตถุประสงค์ใดหลัก

a)

การจัดเก็บตัวอักษร

b)

การคำนวณนิพจน์ทางคณิตศาสตร์

c)

การจัดเรียงข้อมูล

d)

การค้นหาข้อมูล

e)

การเก็บรหัสผ่าน

44.

ข้อใดคือผลลัพธ์ของ Postorder Traversal ใน Expression Tree

a)

Infix Expression

b)

Prefix Expression

c)

Postfix Expression

d)

Binary Expression

e)

Decimal Expression

45.

ข้อใดคือข้อเสียของ Binary Search Tree ที่ไม่ Balanced

a)

ใช้หน่วยความจำมากเกินไป

b)

ไม่สามารถเก็บข้อมูลได้

c)

ประสิทธิภาพการค้นหาลดลงเหลือ O(n)

d)

ไม่สามารถลบข้อมูลได้

e)

ข้อมูลจะไม่เรียงลำดับ

46.

ข้อใดคือความแตกต่างระหว่าง Directed Graph และ Undirected Graph

a)

ไม่มีความแตกต่าง

b)

Directed Graph มี edge ที่มีทิศทาง, Undirected Graph ไม่มี

c)

Undirected Graph ใช้หน่วยความจำมากกว่า

d)

Directed Graph เร็วกว่าในการค้นหา

e)

Undirected Graph มี node มากกว่า

47.

ข้อใดคือวิธีการแทนค่า Graph ที่ใช้หน่วยความจำมากที่สุด

a)

Adjacency List

b)

Adjacency Matrix

c)

Edge List

d)

Incidence Matrix

e)

ทุกวิธีใช้หน่วยความจำเท่ากัน

48.

Adjacency Matrix เหมาะสมกับ Graph ในลักษณะใด

a)

Graph ที่มี edge น้อย (Sparse Graph)

b)

Graph ที่มี edge เยอะ (Dense Graph)

c)

Graph ที่มี node น้อย

d)

Graph ที่ไม่มี cycle

e)

Graph ที่เป็น Tree

49.

DFS (Depth First Search) ใช้โครงสร้างข้อมูลใดในการทำงาน

a)

Queue

b)

Stack

c)

Heap

d)

Hash Table

e)

Array

50.

BFS (Breadth First Search) ใช้โครงสร้างข้อมูลใดในการทำงาน

a)

Stack

b)

Queue

c)

Heap

d)

Tree

e)

Linked List

51.

ข้อใดคือการประยุกต์ใช้ DFS ในระบบงานจริง

a)

การหาเส้นทางสั้นที่สุด

b)

การตรวจหา Cycle ใน Graph

c)

การจัดเรียงข้อมูล

d)

การคำนวณค่าเฉลี่ย

e)

การเก็บข้อมูลในฐานข้อมูล

52.

ข้อใดคือการประยุกต์ใช้ BFS ในระบบงานจริง

a)

การแก้ Maze (เขาวงกต)

b)

การจัดเรียงข้อมูล

c)

การคำนวณดอกเบิ้ย

d)

การเขียนโปรแกรม

e)

การสำรองข้อมูล

53.

Dijkstra's Algorithm ใช้สำหรับแก้ปัญหาอะไร

a)

การหา Minimum Spanning Tree

b)

การหาเส้นทางสั้นที่สุด

c)

การตรวจหา Cycle

d)

การจัดเรียงข้อมูล

e)

การค้นหาข้อมูล

54.

ข้อใดคือเงื่อนไขในการใช้ Dijkstra's Algorithm

a)

Graph ต้องเป็น Undirected เท่านั้น

b)

Graph ต้องเป็น Directed เท่านั้น

c)

น้ำหนักของ Edge ต้องไม่เป็นลบ

d)

Graph ต้องมี Cycle

e)

Graph ต้องเป็น Complete Graph

55.

Weighted Graph หมายความว่าอย่างไร

a)

Graph ที่มี node จำนวนมาก

b)

Graph ที่มีน้ำหนักหรือค่าใช้จ่ายกำกับ Edge

c)

Graph ที่มีความซับซ้อนสูง

d)

Graph ที่ใช้หน่วยความจำมาก

e)

Graph ที่เป็น Tree

56.

ข้อใดคือตัวอย่างการใช้งาน Graph ในระบบเครือข่ายสังคม

a)

การเก็บรหัสผ่านผู้ใช้

b)

การแทนความสัมพันธ์ระหว่างเพื่อน

c)

การคำนวณอายุผู้ใช้

d)

การจัดเก็บรูปภาพ

e)

การส่งอีเมล

57.

Time Complexity ของ BFS ใน Graph ที่มี V vertices และ E edges คือ

a)

O(V)

b)

O(E)

c)

O(V + E)

d)

O(V × E)

e)

O(V²)

58.

ข้อใดคือข้อดีของ Adjacency List เมื่อเปรียบเทียบกับ Adjacency Matrix

a)

การเข้าถึงข้อมูลเร็วกว่า

b)

ใช้หน่วยความจำน้อยกว่าสำหรับ Sparse Graph

c)

เขียนโปรแกรมได้ง่ายกว่า

d)

แสดงผลได้ชัดเจนกว่า

e)

คำนวณได้เร็วกว่า

59.

Minimum Spanning Tree คืออะไร

a)

Tree ที่มี node น้อยที่สุด

b)

Tree ที่เชื่อมต่อทุก vertex ด้วยน้ำหนักรวมน้อยที่สุด

c)

Tree ที่มี height น้อยที่สุด

d)

Tree ที่ใช้หน่วยความจำน้อยที่สุด

e)

Tree ที่มี edge น้อยที่สุด

60.

ข้อใดคือการประยุกต์ใช้ Graph Algorithm ในระบบ GPS Navigation

a)

การใช้ DFS หาเส้นทางใดก็ได้

b)

การใช้ BFS หาจุดหมายปลายทาง

c)

การใช้ Dijkstra's Algorithm หาเส้นทางสั้นที่สุด

d)

การใช้ Binary Search หาตำแหน่ง

e)

การใช้ Hash Table เก็บชื่อถนน