Khơng cần phải khai báo kích thước của mảng vì vector có thể tự động tăng kích thước lên.
- Nếu bạn nâng thêm 1 phần tử vào vector đã đầy rồi, thì nó sẽ tự động tăng kích thước của nó để dành chỗ cho giá trị mới này.
- Vector còn giúp bạn biết số lượng các phần tử mà bạn đã lưu trong đó. - Dùng số phần tử âm vẫn được trong vector.
3. Cú pháp của một vector:
Vector< kiểu dữ liệu >tên vector.
- Để sử dụng được cấu trúc dữ liệu vector ta phải khai báo thư viện vector
o Hàm push_back(): Là hàm cho phép ta đẩy 1 phần tử vào vị trí sau cùng của vector.
o Hàm pop_back(): Là hàm cho phép ta xóa phần tử cuối cùng của vector.
o Hàm size: Là hàm cho phép ta kiểm tra số lượng phần tử trong vector. Ví dụ: #include<iostream> #include<vector> using namespace std; int main(){ vector<int>v; v.push_back(10); v.push_back(20); v.push_back(30); v.push_back(50); v.pop_back(); cout<<v.size()<<endl; for(int i=0;i<v.size();i++){ cout<<v[i]<<endl; } } CHƯƠNG 8. CÂY 1. Tổng quát:
- Cây là một tập các nút với quan hệ cha-con (parent-child) giữa các nút. Trong đó có một nút được gọi là gốc và nó khơng có cha.
- Các ứng dụng:
o Tổ chức biểu đồ o Hệ thống file
o Các mơi trường lập trình … 2. Một số khái niệm:
- Gốc (root): gốc là nút khơng có nút cha ( vd: A)
- Nút trong: Nút có ít nhất một nút con (Vd: A, B, C, F)
- Nút ngoài (lá): nút khơng có nút con (Vd: E, I, J, K, G, H, D)
- Đô sâu của một nút: Nút gốc có độ sâu là 0, nếu nút cha có độ sâu là
h thì nút con có độ sâu là h+1
- Chiều cao của cây: là giá trị lớn nhất của độ sâu của tất cả các nút (3)
- Cây con: Cây bao gồm một số nút của một cây ban đầu
3. Cấu trúc dữ liệu cây
- Định nghĩa Cấu trúc dữ liệu cây là một cấu trúc dữ liệu phi tuyến, trừu tượng, phân cấp có quan hệ cha con giữa hai node kề nhau gồm:
o Một node gốc khơng có cha
o Và các cây con của nó sao cho 1 node bất kỳ đều có duy nhất một đường đi tới gốc do mỗi node có duy nhất 1 cha.
- Các phương thức chung:
o int size()
o int isEmpty()
- Các phương duyệt cây:
o void preorder(Node*) o void inorder(Node*) o void postorder(Node*) - Các phương thức truy cập: o Địa chỉ root() - Các phương thức truy vấn: o int isInternal(Node*)
o int isExternal(Node*)
o int isRoot(Node*)
- Thêm vào đó là những phương thức cập nhật được định nghĩa trong các cấu trúc dữ liệu tạo Tree ADT (Node tạo cây)
- Phương thức thêm phần tử vào cây.
o void insert(Node* parent, Element e)
- Phương thức xóa phần tử
o void remove(Node*);
4. Các phương thức duyệt