1. Trang chủ
  2. » Thể loại khác

cau truc du lieu danh sach lien ket vong

4 204 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 685,11 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Danh sách liên kết vòng Circular Linked List là một biến thể của Danh sách liên kết Linked List, trong đó phần tử đầu tiên trỏ tới phần tử cuối cùng và phần tử cuối cùng trỏ tới phần tử

Trang 1

Cấu trúc dữ liệu Danh sách liên

kết vòng (Circular Linked List)

Danh sách liên kết vòng (Circular Linked

List) là gì ?

Danh sách liên kết vòng (Circular Linked List) là một biến thể của

Danh sách liên kết (Linked List), trong đó phần tử đầu tiên trỏ tới

phần tử cuối cùng và phần tử cuối cùng trỏ tới phần tử đầu tiên

Cả hai loại Danh sách liên kết đơn (Singly Linked List) và Danh sách

liên kết đôi (Doubly Linked List) đều có thể được tạo thành dạng

Danh sách liên kết vòng Phần dưới chúng ta sẽ tìm hiểu từng cách

tạo một

Tạo Danh sách liên kết vòng từ Danh

sách liên kết đơn

Trong Danh sách liên kết đơn, điểm trỏ tới kế tiếp của nút cuối sẽ trỏ

tới nút đầu tiên, thay vì sẽ trỏ tới NULL

Tạo Danh sách liên kết vòng từ Danh

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

Trong Danh sách liên kết đôi, điểm trỏ tới kế tiếp của nút cuối trỏ tới

nút đầu tiên và điểm trỏ tới phía trước của nút trước sẽ trỏ tới nút

cuối cùng Quá trình này sẽ tạo thành vòng ở cả hai hướng

Trang 2

Nhìn vào hai hình minh họa trên, bạn cần ghi nhớ:

• Next của Last Link trỏ tới First Link trong cả hai trường hợp với

Danh sách liên kết đơn cũng như Danh sách liên kết đôi

• Prev của First Link trỏ tới phần tử cuối của Danh sách liên kết với

trường hợp Danh sách liên kết đôi

Các hoạt động cơ bản trên Danh sách

liên kết vòng

Dưới đây là một số hoạt động cơ bản được hỗ trợ bởi Danh sách liên

kết vòng:

Hoạt động chèn: chèn một phần tử vào vị trí bắt đầu của Danh

sách liên kết vòng

Hoạt động xóa: xóa một phần tử của Danh sách liên kết vòng.

Hiển thị: hiển thị toàn bộ Danh sách liên kết vòng.

Hoạt động chèn trong Danh sách liên kết

vòng

Dưới đây là giải thuật minh họa hoạt động chèn trong Danh sách liên

kết vòng dựa trên Danh sách liên kết đơn

//Chèn link tại vị trí đầu tiên

void insertFirst (int key , int data ) {

node ));

link -> key = key ;

link -> data = data ;

if ( isEmpty ()) {

head = link ;

head ->next = head ;

link ->next = head ;

Trang 3

//trỏ first tới first node mới

head = link ;

}

}

Để theo dõi phần triển khai code minh họa chi tiết trong ngôn ngữ C,

bạn click chuột vào chương: Chương trình Danh sách liên kết

vòng trong C.

Hoạt động xóa trong Danh sách liên kết vòng

Dưới đây là giải thuật minh họa hoạt động xóa trong Danh sách liên kết vòng dựa trên Danh sách liên kết đơn

//Xóa phần tử đầu tiên

head = NULL ;

return tempLink ;

}

head = head ->next;

}

Để theo dõi phần triển khai code minh họa chi tiết trong ngôn ngữ C,

bạn click chuột vào chương: Chương trình Danh sách liên kết

vòng trong C.

Hiển thị Danh sách liên kết vòng

Dưới đây là giải thuật minh họa hoạt động hiển thị toàn bộ Danh sách liên kết vòng

//Hiển thị danh sách liên kết vòng

printf ( "\n[ " );

Trang 4

//Bắt đầu từ vị trí đầu tiên

if( head != NULL ) {

while( ptr ->next != ptr ) {

printf ( "(%d,%d) " , ptr -> key , ptr -> data );

ptr = ptr ->next;

}

}

printf ( " ]" );

}

Để theo dõi phần triển khai code minh họa chi tiết trong ngôn ngữ C,

bạn click chuột vào chương: Chương trình Danh sách liên kết

vòng trong C.

Ngày đăng: 02/12/2017, 13:38

TỪ KHÓA LIÊN QUAN