|
@@ -596,23 +596,22 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
|
|
- [Jagged Arrays - Mảng trong mảng (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
|
- [Jagged Arrays - Mảng trong mảng (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
|
|
- [Jagged Arrays - Mảng trong mảng (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
|
- [Jagged Arrays - Mảng trong mảng (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
|
|
- [Resizing arrays - Mảng có thể tùy biến kích thước (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
|
- [Resizing arrays - Mảng có thể tùy biến kích thước (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
|
|
- - [ ] Cấp phát vector (Mảng có thể thay đổi với khả năng tự điều chỉnh kích cỡ):
|
|
|
|
- - [ ] Tập sử dụng mảng và con trỏ, dùng phép toán con trỏ để nhảy tới một chỉ mục (index) thay vì sử dụng chỉ mục.
|
|
|
|
|
|
+ - [ ] Triển khai vector (Mảng có thể thay đổi với khả năng tự điều chỉnh kích cỡ):
|
|
|
|
+ - [ ] Tập sử dụng mảng và con trỏ, dùng phép toán con trỏ để nhảy tới một chỉ mục (index) thay vì sử dụng chỉ mục.
|
|
- [ ] Tạo mảng mới với vùng nhớ được cấp phát sẵn
|
|
- [ ] Tạo mảng mới với vùng nhớ được cấp phát sẵn
|
|
- - Có thể cấp phát mảng số nguyên một cách nhanh chóng, nhưng không sử dụng các tính năng sẵn có
|
|
|
|
|
|
+ - Có thể triển khai mảng số nguyên một cách nhanh chóng, nhưng không sử dụng các tính năng sẵn có
|
|
- Bắt đầu với 16, hoặc số lớn hơn, với cấp số nhân của 2 - 16, 32, 64, 128
|
|
- Bắt đầu với 16, hoặc số lớn hơn, với cấp số nhân của 2 - 16, 32, 64, 128
|
|
-
|
|
|
|
- - [ ] size() - Số lượng của các phần tử trong mảng
|
|
|
|
- - [ ] capacity() - Số lượng tối đa các phần tử mà mảng có thể lưu trữ
|
|
|
|
- - [ ] is_empty() - Kiểm tra mảng rỗng hay không
|
|
|
|
- - [ ] at(index) - Trả về phần tử ở vị trí chỉ mục (index), hoặc lỗi nếu rơi ra ngoài chỉ mục
|
|
|
|
- - [ ] push(item) Thêm vào một phần tử mới
|
|
|
|
- - [ ] insert(index, item) - Thêm một phần tử mới tại vị trí của chỉ mục, điều chỉnh lại chỉ mục và đưa các phần tử còn lại dịch chuyển theo
|
|
|
|
|
|
+ - [ ] size() - Số lượng của các thành phần trong mảng
|
|
|
|
+ - [ ] capacity() - Số lượng tối đa các thành phần mà mảng có thể lưu trữ
|
|
|
|
+ - [ ] is_empty() - Kiểm tra mảng rỗng
|
|
|
|
+ - [ ] at(index) - Trả về thành phần ở vị trí chỉ mục (index), hoặc lỗi nếu rơi ra ngoài chỉ mục
|
|
|
|
+ - [ ] push(item) Thêm vào một thành phần mới
|
|
|
|
+ - [ ] insert(index, item) - Thêm một thành phần mới tại vị trí của chỉ mục, điều chỉnh lại chỉ mục và đưa các thành phần còn lại dịch chuyển theo
|
|
- [ ] prepend(item) - Thêm tại vị trí chỉ mục 0, hay đầu tiên
|
|
- [ ] prepend(item) - Thêm tại vị trí chỉ mục 0, hay đầu tiên
|
|
- - [ ] pop() - trả về phần tử cuối cùng
|
|
|
|
- - [ ] delete(index) - Xóa phần tử tại chỉ mục, dịch chuyển lại các phần tử trong mảng
|
|
|
|
- - [ ] remove(item) - Tìm theo giá trị của phần tử và xóa chỉ mục đang lưu trữ cho phần tử này (áp dụng với việc nhiều thành phần có cùng giá trị)
|
|
|
|
- - [ ] find(item) - Tìm theo giá trị của phần tử và trả về chỉ mục đầu tiên tìm được, -1 nếu không tìm thấy
|
|
|
|
|
|
+ - [ ] pop() - trả về thành phần cuối cùng
|
|
|
|
+ - [ ] delete(index) - Xóa thành phần tại chỉ mục, dịch chuyển lại các thành phần trong mảng
|
|
|
|
+ - [ ] remove(item) - Tìm theo giá trị của thành phần và xóa chỉ mục đang lưu trữ cho thành phần này (áp dụng với việc nhiều thành phần có cùng giá trị)
|
|
|
|
+ - [ ] find(item) - Tìm theo giá trị của thành phần và trả về chỉ mục đầu tiên tìm được, -1 nếu không tìm thấy
|
|
- [ ] resize(new_capacity) // private function
|
|
- [ ] resize(new_capacity) // private function
|
|
- Khi tới giới hạn của mảng, tăng gấp đôi giá trị độ dài mảng để thay đổi kích thước
|
|
- Khi tới giới hạn của mảng, tăng gấp đôi giá trị độ dài mảng để thay đổi kích thước
|
|
- Khi xóa 1 thành phần, nếu kích thước hiện tại chỉ bằng 1/4 kích thước được cấp phát, thay đổi thành 1/2
|
|
- Khi xóa 1 thành phần, nếu kích thước hiện tại chỉ bằng 1/4 kích thước được cấp phát, thay đổi thành 1/2
|