wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Cấu trúc dữ liệu

Total questions: 106

Worksheet time: 53mins

Name
Class
Date
1.

Cấu trúc dữ liệu là gì?

a)

Cách tổ chức, lưu trữ dữ liệu để sử dụng hiệu quả.

b)

Một ngôn ngữ lập trình.

c)

Một hệ điều hành.

d)

Một phần cứng máy tính.

2.

Kiểu dữ liệu trừu tượng (ADT) là gì?

a)

Mô tả dữ liệu và các phép toán trên nó mà không quan tâm cách cài đặt.

b)

Một kiểu dữ liệu nguyên thủy.

c)

Một hàm xử lý dữ liệu.

d)

Một lớp đối tượng trong OOP.

3.

Mục đích chính của cấu trúc dữ liệu là gì?

a)

Tăng hiệu quả lưu trữ và truy xuất dữ liệu.

b)

Tăng độ bảo mật.

c)

Giảm độ chính xác dữ liệu.

d)

Tăng kích thước bộ nhớ.

4.

Mỗi cấu trúc dữ liệu đều đi kèm với gì?

a)

Một tập các phép toán cơ bản.

b)

Một giao diện đồ họa.

c)

Một hàm nhập xuất.

d)

Một thuật toán sắp xếp.

5.

Cấu trúc dữ liệu chia thành mấy loại chính?

a)

2

b)

3 (tuyến tính, phi tuyến tính, và hỗn hợp)

c)

4

d)

5

6.

Mảng là gì?

a)

Một tập hợp phần tử cùng kiểu, lưu liên tiếp trong bộ nhớ.

b)

Tập hợp các phần tử khác kiểu.

c)

Một danh sách liên kết.

d)

Một con trỏ.

7.

Truy cập phần tử mảng cần biết gì?

a)

Tên mảng và chỉ số.

b)

Giá trị của phần tử.

c)

Địa chỉ ô nhớ đầu tiên.

d)

Độ dài chuỗi.

8.

Chỉ số mảng trong C bắt đầu từ đâu?

a)

0

b)

1

c)

2

d)

Tùy compiler.

9.

Ưu điểm của mảng là gì?

a)

Truy cập phần tử nhanh theo chỉ số.

b)

Dễ thêm phần tử giữa mảng.

c)

Giảm kích thước bộ nhớ.

d)

Dễ thay đổi kích thước.

10.

Nhược điểm của mảng là gì?

a)

Kích thước cố định, khó chèn/xóa.

b)

Truy cập chậm.

c)

Tốn CPU.

d)

Không lưu được dữ liệu kiểu ký tự.

11.

Danh sách liên kết là gì?

a)

Tập hợp các nút, mỗi nút chứa dữ liệu và con trỏ đến nút kế.

b)

Dãy phần tử lưu liên tiếp.

c)

Một mảng tĩnh.

d)

Một tập tin.

12.

Nhược điểm của danh sách liên kết là?

a)

Truy cập ngẫu nhiên chậm.

b)

Không thể mở rộng.

c)

Tốn ít bộ nhớ.

d)

Không lưu được ký tự.

13.

Danh sách liên kết đơn là gì?

a)

Mỗi nút có 1 con trỏ trỏ đến nút kế tiếp.

b)

Mỗi nút có 2 con trỏ.

c)

Các nút trỏ ngược nhau.

d)

Chỉ lưu phần tử đầu tiên.

14.

Ngăn xếp hoạt động theo nguyên tắc nào?

a)

Vào sau ra trước (LIFO)

b)

Vào trước ra trước

c)

Ngẫu nhiên

d)

Ưu tiên theo giá trị

15.

Thao tác push trên ngăn xếp được định nghĩa là gì?

a)

Thêm phần tử vào đỉnh ngăn xếp

b)

Xóa phần tử khỏi đỉnh

c)

Truy cập phần tử đầu tiên

d)

Làm rỗng ngăn xếp

16.

Thao tác pop trên ngăn xếp là gì?

a)

Lấy và xóa phần tử ở đỉnh ngăn xếp

b)

Thêm phần tử mới

c)

Đếm số phần tử

d)

Kiểm tra rỗng

17.

Ứng dụng điển hình của ngăn xếp là gì?

a)

Quản lý lời gọi hàm (call stack)

b)

Truy cập file nhanh

c)

Xử lý hàng đợi ưu tiên

d)

Lưu danh sách liên kết

18.

Điều gì xảy ra khi push vào một ngăn xếp đã đầy?

a)

Tràn ngăn xếp (stack overflow)

b)

Lỗi cú pháp

c)

Lỗi logic

d)

Tràn bộ nhớ heap

19.

Hàng đợi hoạt động theo nguyên tắc nào?

a)

Vào trước ra trước (FIFO)

b)

Vào sau ra trước

c)

Ngẫu nhiên

d)

Ưu tiên theo độ lớn

20.

Thao tác enqueue là gì?

a)

Thêm phần tử vào cuối hàng

b)

Lấy phần tử đầu

c)

Làm rỗng hàng

d)

Xóa phần tử cuối

21.

Thao tác dequeue là gì?

a)

Lấy và xóa phần tử đầu hàng

b)

Thêm phần tử đầu hàng

c)

Đếm phần tử

d)

Kiểm tra rỗng

22.

Hàng đợi vòng (circular queue) giúp giải quyết vấn đề gì?

a)

Tái sử dụng ô trống khi phần tử bị xóa

b)

Tăng bộ nhớ

c)

Giảm tốc độ

d)

Sắp xếp nhanh hơn

23.

Một ứng dụng tiêu biểu của hàng đợi là gì?

a)

Quản lý tiến trình, in ấn, hàng đợi yêu cầu

b)

Lưu lịch sử trình duyệt

c)

Xử lý đệ quy

d)

Sắp xếp mảng

24.

Chọn phát biểu đúng để phân biệt LIFO và FIFO trong việc xử lý phần tử đầu/cuối cấu trúc dữ liệu.

a)

LIFO lấy/xóa ở đỉnh; FIFO lấy/xóa ở đầu hàng

b)

LIFO luôn lấy ở đáy; FIFO ở đỉnh

c)

Cả LIFO và FIFO đều lấy ở cuối

d)

LIFO và FIFO không quy định vị trí lấy/xóa

25.

Cây nhị phân được định nghĩa là gì?

a)

Mỗi nút có tối đa 2 nút con.

b)

Mỗi nút có 3 nút con.

c)

Cấu trúc tuyến tính.

d)

Mảng 2 chiều.

26.

Nút gốc (root) là gì?

a)

Nút không có cha (parent).

b)

Nút có 2 con.

c)

Nút cuối cùng.

d)

Nút có giá trị nhỏ nhất.

27.

Nút lá là gì?

a)

Nút không có con.

b)

Nút có 2 con.

c)

Nút có 1 con.

d)

Nút gốc.

28.

Độ cao của cây là gì?

a)

Số cạnh dài nhất từ gốc đến lá.

b)

Tổng số nút.

c)

Số nhánh ngang.

d)

Số lượng cây con.

29.

Các cách duyệt cây nhị phân gồm:

a)

Tiền tự, trung tự, hậu tự.

b)

Đệ quy, lặp, ngẫu nhiên.

c)

Vòng tròn, xoắn, chéo.

d)

Trên xuống, trái phải.

30.

Duyệt trung tự (In-order) của cây nhị phân in ra kết quả như thế nào (nếu là cây tìm kiếm)?

a)

Thứ tự tăng dần.

b)

Giảm dần.

c)

Ngẫu nhiên.

d)

Thứ tự nhập.

31.

Cây tìm kiếm nhị phân (BST) có tính chất nào sau đây?

a)

Trái < gốc < phải.

b)

Trái > phải.

c)

Gốc luôn lớn nhất.

d)

Ngẫu nhiên.

32.

Khi chèn phần tử vào BST, thao tác so sánh diễn ra như thế nào?

a)

Giá trị nút hiện tại, rồi đi trái hoặc phải.

b)

Nút gốc duy nhất.

c)

Tất cả nút.

d)

Ngẫu nhiên.

33.

Xóa nút trong BST có mấy trường hợp chính?

a)

3 (nút lá, 1 con, 2 con).

b)

2.

c)

4.

d)

1.

34.

Cây cân bằng (balanced tree) là:

a)

Hiệu độ cao hai cây con ≤ 1 ở mọi nút.

b)

Có cùng số nút hai bên.

c)

Cây có độ cao tối đa.

d)

Cây không có lá.

35.

Dạng cây cân bằng thông dụng là:

a)

AVL, Red-Black Tree.

b)

B-Tree, Stack.

c)

Binary Heap.

d)

Linked List.

36.

Cây nhị phân đầy đủ (Full Binary Tree) có đặc trưng nào?

a)

Mỗi nút có 0 hoặc 2 con.

b)

Có một con duy nhất.

c)

Có 3 con.

d)

Cây rỗng.

37.

Cây hoàn chỉnh (Complete Binary Tree) có mô tả đúng là:

a)

Tất cả các mức (trừ mức cuối) đều đầy đủ.

b)

Tất cả các nút có 2 con.

c)

Có số nút bằng 2n2^n .

d)

Không có lá.

38.

Heap là gì?

a)

Cây nhị phân thỏa mãn tính chất cha ≥ hoặc ≤ con.

b)

Danh sách liên kết đôi.

c)

Ngăn xếp nhiều lớp.

d)

Cấu trúc tuần tự.

39.

Tìm kiếm tuần tự (Linear Search) là:

a)

Duyệt từng phần tử đến khi tìm thấy.

b)

Tìm theo cây.

c)

Theo chỉ số trung bình.

d)

Theo bảng băm.

40.

Điều kiện tiên quyết để áp dụng Tìm kiếm nhị phân (Binary Search) là gì?

a)

Dữ liệu phải được sắp xếp trước.

b)

Dữ liệu có dạng cây nhị phân.

c)

Mảng hai chiều.

d)

Dữ liệu ngẫu nhiên.

41.

Tư tưởng cốt lõi của Tìm kiếm nhị phân là:

a)

Chia đôi vùng tìm kiếm mỗi lần.

b)

Duyệt hết danh sách.

c)

Chọn phần tử ngẫu nhiên để so sánh.

d)

Sử dụng bảng tra cứu.

42.

Độ phức tạp thời gian của Tìm kiếm tuần tự là:

a)

O(n)

b)

O(log n)

c)

O(1)

d)

O(n2)O(n^2)

43.

Ưu điểm chính của Tìm kiếm nhị phân so với tuyến tính là:

a)

Nhanh hơn khi dữ liệu đã sắp xếp.

b)

Dễ cài đặt hơn tuyến tính.

c)

Không cần mảng.

d)

Áp dụng cho mọi loại dữ liệu không sắp xếp.

44.

Nhược điểm chính của Tìm kiếm nhị phân là:

a)

Chỉ áp dụng cho dữ liệu đã sắp xếp.

b)

Không chính xác.

c)

Dễ lỗi do so sánh.

d)

Tốn bộ nhớ hơn.

45.

Một mảng có 1024 phần tử. Số lần so sánh tối đa của Tìm kiếm nhị phân xấp xỉ bằng:

a)

≈10 lần

b)

100

c)

512

d)

32

46.

Cơ chế hoạt động của Bubble Sort là gì?

a)

So sánh từng cặp kề và hoán đổi khi sai thứ tự.

b)

Chọn phần tử nhỏ nhất mỗi lần.

c)

Chèn phần tử vào đúng chỗ.

d)

Chia đôi dãy.

47.

Độ phức tạp trung bình của Bubble Sort là:

a)

O(n2)O(n^2)

b)

O(n log n)

c)

O(n)

d)

O(1)

48.

Thuật toán sắp xếp chọn (Selection Sort):

a)

Chọn phần tử nhỏ nhất, đưa lên đầu dãy.

b)

Chèn vào đúng vị trí.

c)

Dựa vào phân hoạch.

d)

Duyệt đệ quy.

49.

Mô tả đúng nhất về Insertion Sort:

a)

Chèn từng phần tử vào đúng vị trí trong mảng con đã sắp.

b)

Chia đôi mảng.

c)

Chọn phần tử ngẫu nhiên.

d)

Hoán đổi 2 phần tử cuối.

50.

Độ phức tạp trung bình của Insertion Sort là:

a)

O(n2)O(n^2)

b)

O(log n)

c)

O(1)

d)

O(n log n)

51.

Quick Sort dựa trên nguyên lý nào?

a)

Chia để trị (Divide and Conquer).

b)

Lặp liên tục.

c)

Duyệt ngẫu nhiên.

d)

Đếm số lần đổi chỗ.

52.

Bước đầu của Quick Sort là gì?

a)

Chọn phần tử chốt (pivot) để phân hoạch mảng.

b)

Tìm phần tử nhỏ nhất.

c)

Tính trung bình.

d)

Đếm phần tử.

53.

Độ phức tạp trung bình của Quick Sort là:

a)

O(n log n)

b)

O(n2)O(n^2)

c)

O(n)

d)

O(1)

54.

Khi dữ liệu đã gần sắp xếp, Quick Sort có thể chậm chủ yếu do:

a)

Chọn pivot xấu dẫn đến phân hoạch lệch.

b)

Bộ nhớ thiếu.

c)

Không so sánh được.

d)

Tính sai thứ tự.

55.

Trong bối cảnh tìm kiếm trên dữ liệu ngẫu nhiên lớn, cấu trúc nào thường cho hiệu quả tốt nhất?

a)

Bảng băm (Hash Table).

b)

Tìm kiếm tuần tự.

c)

Duyệt cây.

d)

Duyệt vòng lặp.

56.

Cấu trúc dữ liệu lưu phần tử theo nguyên tắc LIFO là:

a)

Hàng đợi

b)

Danh sách liên kết

c)

Ngăn xếp (Stack)

d)

Cây

57.

Độ phức tạp trung bình của Insertion Sort là gì?

a)

O(n2)O(n^2)

b)

O(log n)

c)

O(1)

d)

O(n log n)

58.

Quick Sort dựa trên nguyên lý nào?

a)

Chia để trị (Divide and Conquer)

b)

Lặp liên tục

c)

Duyệt ngẫu nhiên

d)

Đếm số lần đổi chỗ

59.

Bước đầu quan trọng của Quick Sort là gì?

a)

Chọn phần tử chốt (pivot) để phân hoạch mảng

b)

Tìm phần tử nhỏ nhất

c)

Tính trung bình

d)

Đếm phần tử

60.

Độ phức tạp trung bình của Quick Sort là gì?

a)

O(n log n)

b)

O(n2)O(n^2)

c)

O(n)

d)

O(1)

61.

Khi dữ liệu đã sắp, Quick Sort có thể chậm vì lý do nào?

a)

Chọn pivot xấu dẫn đến phân hoạch lệch

b)

Bộ nhớ thiếu

c)

Không so sánh được

d)

Tính sai thứ tự

62.

Trong danh sách liên kết đơn, mỗi nút thường chứa gì?

a)

Chỉ dữ liệu

b)

Dữ liệu và con trỏ tới nút kế tiếp

c)

Hai con trỏ

d)

Con trỏ tới nút trước

63.

Mảng có thể truy cập phần tử bất kỳ trong thời gian nào?

a)

O(1)

b)

O(n)

c)

O(log n)

d)

O(n2)O(n^2)

64.

Trong danh sách liên kết đơn, truy cập phần tử thứ k mất thời gian bao nhiêu?

a)

O(1)

b)

O(n)

c)

O(log n)

d)

O(n log n)

65.

Ngăn xếp thường được dùng trong tác vụ nào sau đây?

a)

Tìm kiếm nhị phân

b)

Duyệt đệ quy hoặc kiểm tra dấu ngoặc

c)

Xếp hàng chờ

d)

Tính trung bình

66.

Hàng đợi (Queue) hoạt động theo nguyên tắc nào?

a)

FIFO (First In First Out)

b)

LIFO

c)

FILO

d)

Random

67.

Cấu trúc dữ liệu phù hợp để mô phỏng hàng chờ máy in là gì?

a)

Hàng đợi (Queue)

b)

Ngăn xếp

c)

Danh sách liên kết

d)

Cây

68.

Độ phức tạp trung bình của tìm kiếm tuyến tính là gì?

a)

O(log n)

b)

O(n)

c)

O(1)

d)

O(n2)O(n^2)

69.

Cấu trúc dữ liệu nào phù hợp nhất để cài đặt ngăn xếp?

a)

Mảng hoặc danh sách liên kết

b)

Cây

c)

Hàng đợi

d)

Hash table

70.

Phép duyệt Inorder trong cây nhị phân thực hiện theo thứ tự nào?

a)

Node - Trái - Phải

b)

Trái - Node - Phải

c)

Phải - Node - Trái

d)

Node - Phải - Trái

71.

Trong cây nhị phân có n nút, số cạnh là bao nhiêu?

a)

n - 1

b)

n

c)

n + 1

d)

n / 2

72.

Cấu trúc dữ liệu nào dùng để biểu diễn cây nhị phân trong bộ nhớ?

a)

Hàng đợi

b)

Mảng

c)

Con trỏ (linked structure)

d)

Danh sách

73.

Cấu trúc dữ liệu nào cho phép thêm và xóa ở cả hai đầu?

a)

Deque (Double Ended Queue)

b)

Stack

c)

Queue

d)

List

74.

Trong hàng đợi tròn, khi rear đạt giới hạn mảng thì thao tác đúng là gì?

a)

Quay về đầu mảng nếu còn chỗ trống

b)

Dừng chương trình

c)

Tràn bộ nhớ

d)

Thoát hàng đợi

75.

Độ phức tạp của thuật toán tìm kiếm nhị phân là gì?

a)

O(n)

b)

O(log n)

c)

O(1)

d)

O(n2)O(n^2)

76.

Điều kiện để áp dụng tìm kiếm nhị phân là gì?

a)

Dữ liệu đã được sắp xếp

b)

Dữ liệu ngẫu nhiên

c)

Dữ liệu là cây

d)

Dữ liệu là danh sách liên kết

77.

Trong sắp xếp chọn (Selection Sort), sau mỗi lần lặp sẽ xảy ra điều gì?

a)

Đưa phần tử nhỏ nhất về đầu dãy

b)

Đưa phần tử lớn nhất về cuối

c)

Hoán vị ngẫu nhiên

d)

Không thay đổi

78.

Độ phức tạp trung bình của sắp xếp chọn (Selection Sort) là gì?

a)

O(log n)

b)

O(n log n)

c)

O(n2)O(n^2)

d)

O(n)

79.

Thuật toán sắp xếp nào hoạt động hiệu quả nhất trên dữ liệu nhỏ?

a)

Quick Sort

b)

Insertion Sort

c)

Merge Sort

d)

Heap Sort

80.

Đặc điểm nổi bật của Bubble Sort là gì?

a)

Tách mảng thành nhiều phần

b)

So sánh từng cặp phần tử liên tiếp và hoán đổi

c)

Chia để trị

d)

Dựa trên ngăn xếp

81.

Khi dùng cây tìm kiếm nhị phân (BST), độ phức tạp trung bình của phép tìm kiếm là gì?

a)

O(n)

b)

O(log n)

c)

O(n2)O(n^2)

d)

O(1)

82.

Cấu trúc dữ liệu nào hỗ trợ tìm kiếm, thêm, xóa trong O(log n)?

a)

Cây tìm kiếm nhị phân cân bằng (AVL, Red-Black)

b)

Mảng

c)

Hàng đợi

d)

Danh sách

83.

Danh sách liên kết đôi có bao nhiêu con trỏ trong mỗi nút?

a)

1

b)

2 (tới trước và sau)

c)

3

d)

0

84.

Cấu trúc dữ liệu nào không có giới hạn cố định về kích thước?

a)

Danh sách liên kết

b)

Mảng

c)

Stack tĩnh

d)

Queue tĩnh

85.

Thứ tự duyệt Preorder trong cây nhị phân là gì?

a)

Node - Trái - Phải

b)

Trái - Node - Phải

c)

Phải - Node - Trái

d)

Trái - Phải - Node

86.

Thứ tự duyệt Postorder trong cây nhị phân là gì?

a)

Node - Trái - Phải

b)

Trái - Phải - Node

c)

Phải - Node - Trái

d)

Node - Phải - Trái

87.

Khi chèn vào danh sách liên kết đôi, cần cập nhật gì?

a)

Một con trỏ

b)

Hai con trỏ (next, prev)

c)

Không con trỏ nào

d)

Toàn bộ danh sách

88.

Khi xóa phần tử đầu tiên trong danh sách liên kết đơn, thao tác đúng là gì?

a)

Chỉ gán NULL

b)

Cập nhật con trỏ đầu sang nút kế tiếp

c)

Duyệt hết danh sách

d)

Không cần làm gì

89.

Khi stack rỗng, thao tác Pop sẽ gây ra lỗi gì?

a)

Lỗi tràn ngược (Underflow)

b)

Tràn bộ nhớ

c)

Lỗi cú pháp

d)

Không lỗi

90.

Khi queue đầy, thao tác Enqueue sẽ gây ra hiện tượng gì?

a)

Lỗi tràn (Overflow)

b)

Underflow

c)

Dừng chương trình

d)

Không lỗi

91.

Cấu trúc dữ liệu nào dùng tốt cho duyệt theo chiều sâu (DFS)?

a)

Stack

b)

Queue

c)

Mảng

d)

List

92.

Cấu trúc dữ liệu nào dùng cho duyệt theo chiều rộng (BFS)?

a)

Stack

b)

Queue

c)

Mảng

d)

Tree

93.

Trong thuật toán Quick Sort, phần tử "pivot" dùng để làm gì?

a)

Chia mảng thành hai phần

b)

Sắp xếp trực tiếp

c)

Xóa phần tử

d)

Làm trung bình

94.

Độ phức tạp trung bình của Quick Sort là:

a)

O(n2)O(n^2)

b)

O(n log n)

c)

O(log n)

d)

O(n)

95.

Độ phức tạp trung bình của Merge Sort là:

a)

O(n2)O(n^2)

b)

O(n log n)

c)

O(n)

d)

O(log n)

96.

Khi dùng danh sách liên kết để cài đặt stack, thao tác Push diễn ra ở đâu?

a)

Đầu danh sách

b)

Cuối danh sách

c)

Giữa danh sách

d)

Bất kỳ

97.

Khi dùng danh sách liên kết để cài đặt queue, thao tác Enqueue thực hiện ở đâu?

a)

Cuối danh sách

b)

Đầu danh sách

c)

Giữa danh sách

d)

Bất kỳ

98.

Cấu trúc dữ liệu nào phù hợp để cài đặt lời gọi hàm lồng nhau trong chương trình?

a)

Stack

b)

Queue

c)

List

d)

Tree

99.

Lợi ích của danh sách liên kết so với mảng?

a)

A. Thêm/xóa linh hoạt không cần dời phần tử.

b)

B. Truy cập ngẫu nhiên nhanh hơn.

c)

C. Tiết kiệm bộ nhớ.

d)
  1. D. Dễ dàng sắp xếp.

100.
  1. Danh sách liên kết đôi là gì?

a)

  1. A. Mỗi nút có con trỏ trỏ tới nút trước và sau.

b)

  1. B. Có 1 con trỏ duy nhất.

c)

C. Dạng mảng 2 chiều.

d)

D. Dạng danh sách vòng.

101.

Duyệt cây là gì?

a)


A.
Thăm tất cả các nút theo một thứ tự xác định.

b)

B. Xóa các nút không cần.

c)

C. Thêm nút mới.

d)

D. Tính độ sâu

102.
  1. Độ phức tạp của tìm kiếm nhị phân là:

a)
  1. A. O(log n)

b)
  1. B. O(n)

c)
  1. C. O(n²)

d)
  1. D. O(√n)

103.
  1. Khi tìm kiếm thất bại, thuật toán sẽ:

a)

A. Kết thúc sau khi không còn vùng tìm kiếm.

b)
  1. B. Báo lỗi cú pháp.

c)
  1. C. Quay lại đầu mảng.

d)
  1. D. Lặp vô hạn.

104.
  1. Thuật toán tìm kiếm tốt nhất cho dữ liệu ngẫu nhiên lớn là:

a)

A. Sử dụng bảng băm (Hash Table).

b)
  1. B. Tìm kiếm tuần tự.

c)
  1. C. Duyệt cây.

d)

D. Duyệt vòng lặp.

105.
  1. Mục đích của sắp xếp là gì?

a)

A. Sắp xếp dữ liệu theo thứ tự tăng/giảm để dễ tìm kiếm, thống kê.

b)

B. Tăng bộ nhớ.

c)

C. Giảm CPU.

d)
  1. D. Tạo file mới.

106.

Trong danh sách liên kết đơn, mỗi nút chứa:

a)


A. Chỉ dữ liệu

b)


B. Dữ liệu và con trỏ tới nút kế tiếp

c)


C. Hai con trỏ

d)


D. Con trỏ tới nút trước