17 câu hỏi phỏng vấn về danh sách liên kết và câu trả lời hàng đầu

Dưới đây là những câu hỏi phỏng vấn Danh sách liên kết và câu trả lời dành cho người mới bắt đầu cũng như ứng viên có kinh nghiệm để có được công việc mơ ước của mình.

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

Danh sách liên kết là một cấu trúc dữ liệu có thể lưu trữ một tập hợp các mục. Nói cách khác, danh sách liên kết có thể được sử dụng để lưu trữ một số đối tượng cùng loại. Mỗi đơn vị hoặc phần tử của danh sách được gọi là một nút. Mỗi nút có dữ liệu riêng và địa chỉ của nút tiếp theo. Nó giống như một chuỗi. Danh sách liên kết được sử dụng để tạo đồ thị và cây.

Tải xuống PDF miễn phí: Câu hỏi và câu trả lời phỏng vấn danh sách liên kết


2) Loại phân bổ bộ nhớ nào được sử dụng cho danh sách liên kết?

Phân bổ bộ nhớ động được áp dụng cho danh sách liên kết.


3) Trình bày thế nào là duyệt trong danh sách liên kết?

Thuật ngữ Duyệt được sử dụng để chỉ hoạt động xử lý từng phần tử trong danh sách.


4) Mô tả Node trong danh sách liên kết là gì? Và nêu tên các loại Danh sách liên kết?

Cùng nhau (dữ liệu + liên kết) được gọi là Nút. Các loại Danh sách liên kết là,

  • Danh sách liên kết đơn
  • Danh sách được liên kết gấp đôi
  • Danh sách liên kết nhiều
  • Danh sách liên kết hình tròn

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

Danh sách liên kết đơn là một loại cấu trúc dữ liệu. Trong danh sách liên kết đơn, mỗi nút trong danh sách lưu trữ nội dung của nút và tham chiếu hoặc con trỏ đến nút tiếp theo trong danh sách. Nó không lưu trữ bất kỳ tham chiếu hoặc con trỏ nào đến nút trước đó.

Câu hỏi phỏng vấn danh sách liên kết
Câu hỏi phỏng vấn danh sách liên kết

6) Nêu sự khác biệt giữa Linear Mảng và Danh sách liên kết?

Sự khác biệt giữa Mảng tuyến tính và Danh sách liên kết được hiển thị bên dưới,

tuyến tính mảng Danh sách liên kết
Việc xóa và thêm rất khó. Có thể thực hiện việc xóa và thêm dễ dàng.
Để chèn và xóa, cần phải có chuyển động Đối với việc chèn và xóa, nó không yêu cầu di chuyển các nút
Trong đó không gian bị lãng phí Trong đó không gian không bị lãng phí
Nó đắt Nó không phải là đắt tiền
Không thể giảm hoặc mở rộng theo yêu cầu Có thể thu gọn hoặc kéo dài tùy theo yêu cầu
Để sử dụng được từng thành phần cần phải có cùng một khoảng thời gian. Để sử dụng được từng thành phần cần có thời gian khác nhau.
Các phần tử được lưu trữ ở các vị trí bộ nhớ liên tiếp. Các phần tử có thể hoặc không thể được lưu trữ ở các vị trí bộ nhớ liên tiếp
Chúng ta có thể đến đó trực tiếp nếu chúng ta phải đi đến một phần tử cụ thể Để đến được một nút cụ thể, bạn cần phải đi qua tất cả các nút trước nút đó.

7) Hãy nêu những ứng dụng của Danh sách liên kết?

Ứng dụng của danh sách liên kết là,

  • Danh sách liên kết được sử dụng để triển khai hàng đợi, ngăn xếp, đồ thị, v.v.
  • Trong Danh sách liên kết, bạn không cần biết trước kích thước.
  • Danh sách liên kết cho phép bạn chèn các phần tử vào đầu và cuối danh sách.

8) Tiêu đề giả trong danh sách liên kết chứa gì?

Trong danh sách liên kết, tiêu đề giả chứa bản ghi đầu tiên của dữ liệu thực tế


9) Trình bày các bước chèn dữ liệu vào đầu danh sách liên kết đơn?

Các bước để chèn dữ liệu vào đầu danh sách liên kết đơn bao gồm:

  • Tạo một nút mới
  • Chèn nút mới bằng cách phân bổ con trỏ đầu cho nút mới con trỏ tiếp theo
  • Cập nhật con trỏ đầu tới điểm nút mới.
Node *head;

void InsertNodeAtFront(int data)

{

/* 1. create the new node*/

Node *temp = new Node;

temp->data = data;

/* 2. insert it at the first position*/

temp->next = head;

/* 3. update the head to point to this new node*/

head = temp;

}

10) Hãy cho biết sự khác biệt giữa danh sách liên kết đơn và danh sách liên kết đôi là gì?

Một nút danh sách liên kết kép chứa ba trường:

  • Một giá trị số nguyên và
  • Hai liên kết đến các nút khác
  • một để trỏ đến nút trước đó và
  • cái còn lại để trỏ tới nút tiếp theo.

Trong khi đó danh sách liên kết đơn chỉ chứa các điểm đến nút tiếp theo.


11) Hãy kể tên những ứng dụng sử dụng danh sách liên kết?

Cả hàng đợi và ngăn xếp thường được triển khai bằng cách sử dụng danh sách liên kết. Các ứng dụng khác là danh sách, cây nhị phân, bỏ qua, danh sách liên kết chưa cuộn, bảng băm, v.v.


12) Giải thích cách thêm một mục vào đầu danh sách?

Để thêm một mục vào đầu danh sách, bạn phải thực hiện như sau:

  • Tạo một mục mới và thiết lập giá trị của nó
  • Liên kết mục mới để trỏ đến phần đầu của danh sách
  • Đặt phần đầu của danh sách là mục mới của chúng ta

Nếu bạn đang sử dụng một hàm để thực hiện thao tác này, bạn cần thay đổi biến head. Để làm điều này, bạn phải truyền một con trỏ đến biến con trỏ (một con trỏ double). do đó bạn sẽ có thể sửa đổi chính con trỏ đó.


13) Hãy cho biết lợi thế lớn nhất của danh sách liên kết là gì?

Lợi ích lớn nhất của danh sách liên kết là bạn không chỉ định kích thước cố định cho danh sách của mình. Càng thêm nhiều phần tử vào chuỗi, chuỗi càng lớn.


14) Hãy nêu cách xóa nút đầu tiên khỏi danh sách liên kết đơn?

Để xóa nút đầu tiên khỏi danh sách liên kết đơn

  • Lưu trữ Bắt đầu Hiện tại trong Con trỏ Tạm thời Khác
  • Di chuyển con trỏ bắt đầu một vị trí về phía trước
  • Xóa temp tức là Nút bắt đầu trước đó vì chúng tôi đã Cập nhật Phiên bản của Con trỏ bắt đầu

15) Hãy nêu cách hiển thị Danh sách liên kết đơn từ đầu đến cuối?

Để hiển thị Danh sách liên kết đơn từ đầu đến cuối,

  • Tạo danh sách liên kết bằng cách sử dụng create().
  • Bạn không thể thay đổi địa chỉ được lưu trữ bên trong biến toàn cục “start” do đó bạn phải khai báo một biến tạm thời - “temp” có kiểu node
  • Để duyệt từ đầu đến cuối, bạn phải phân bổ địa chỉ của nút Bắt đầu trong biến Con trỏ tức là temp.
struct node *temp;  //Declare temp

temp = start;       //Assign Starting Address to temp

Nếu temp là NULL thì bạn có thể nói rằng nút cuối cùng đã được chạm tới.

while(temp!=NULL)

{

printf("%d",temp->data);

temp=temp->next;

}

16) Hãy đề cập đến cách chèn một nút mới vào danh sách liên kết khi có nút trống?

Để chèn một nút mới vào danh sách liên kết, nút trống sẽ có sẵn trong danh sách Avail.


17) Trong danh sách tiêu đề nào, bạn sẽ thấy nút cuối cùng chứa con trỏ null?

Đối với danh sách tiêu đề có cơ sở, bạn sẽ thấy nút cuối cùng chứa con trỏ null.

Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn

Chia sẻ

6 Comments

  1. đó là những câu hỏi khá hay ………………………

  2. xin vui lòng làm thế nào tôi có thể giải quyết vấn đề này
    (danh sách liên kết với nút đầu giả)
    Cho hai danh sách liên kết L1 và L2, hãy quyết định một thủ tục trong ngôn ngữ giả sử dụng danh sách liên kết ADT để chèn L2 sau phần tử thứ ba từ phần tử cuối cùng của L1

    Nếu L1 là 1-2-3-4-5-6-7-8-9 và L2 là 1-1-1

    The result is 1-2-3-4-5-6-7-1-1-1-8-9

    1. hình đại diện Muhannad Shamasneh nói:

      trước tiên bạn cần duyệt L1 bằng hai con trỏ:
      pointer1 – cách đầu một bước.
      pointer2 – cách đầu 3 bước.
      trong khi (pointer2.next!=null){
      pointer2 = pointer2.next;
      pointer1 = pointer1.next;
      }
      // bây giờ bạn sẽ có con trỏ 1 trỏ đến nút thứ 3 tính từ nút cuối cùng.
      temp = con trỏ1.next
      con trỏ1.next = L2;
      traversL2 đến cuối để lấy phần tử cuối cùng->
      LastElementOfL2.Next = temp;
      ...

Bình luận

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *