Tìm kiếm, lấy số lượng, in tất cả phần tử trong danh sách liên kết

Tìm kiếm

Để tìm kiếm trong danh sách liên kết đơn, chúng ta sẽ phải duyệt từng phần tử để tìm ra phần tử cần tìm.

/**
 * Search element in linked list
 * @Param T data
 * @return int pos if linked list contain data
 * @return -1 if linked list don't contain data
 */
public int find(T data) {
    int pos = 0;
    Node<T> cur = this.head;
    while (cur != null) {
        if(cur.getData().equals(data))
            return pos;
        cur = cur.getNext();
        pos++;
    }
    return -1;
}

Chi phí O(n)

Lấy số lượng phần tử(size)

Để lấy số lượng phần tử trong danh sách liên kết

B1: Khởi tạo count = 0
B2: Loop qua danh sách liên kết cho đến khi gặp phần tử cuối cùng
      (a) Với mỗi phần tử đi qua count = count +1
/**
 * Get size of linked list
 */

public int size() {
    int count = 0;
    Node<T> cur = this.head;
    while (cur != null) {
        count++;
        cur = cur.getNext();
    }
    return count;
}

Chi phí: O(n)

In tất cả các phần tử trong danh sách liên kết

Để in tất cả các phần tử trong danh sách liên kết, Chúng ta chỉ cần loop qua tất cả các node và in data của node đó.

/**
 * Print all the element of linked list
 */

public void printAll() {
    Node node = this.head;
    while (node != null) {
        System.out.print(node.getData() + " ");
        node = node.getNext();
    }
}

Chi phí: O(n)

Link full source linked list: LinkedList

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x