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