CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++ 3. Đếm 3.1. Đếm số phần tử (SV tự vẽ hình minh họa) - Đầu vào: DSLK đơn l - Kết quả: Trả về số lượng các phần tử trong danh sách - Giải thuật: B1: d=0 p trỏ vào đầu danh sách B2: Nếu p = NULL thì trả về d. Kết thúc B3: d=d+1 B4: p trỏ đến phần tử kế tiếp, quay lại B2 - Cài đặt: int SoLuongNode(LIST l) { int d=0; NODE *p=l.pHead; while(p) { d++; p=p->pNext; } return d; } 3.2. Đếm số phần tử thỏa điều kiện (SV tự vẽ hình minh họa) Đầu vào: DSLK đơn l, điều kiện bên ngoài (nếu có: ví dụ giá trị x để so sánh) - Kết quả: Trả về số lượng các phần tử thỏa điều kiện trong danh sách - Giải thuật: B1: d=0 p trỏ vào đầu danh sách B2: Nếu p = NULL thì trả về d. Kết thúc B3: Nếu giá trị p thỏa điều kiện thì d=d+1 B4: p trỏ đến phần tử kế tiếp, quay lại B2 - Cài đặt (Giả sử đếm số lượng phần tử có giá trị chẵn trong danh sách số nguyên): int SoLuongNodeChan(LIST l) { int d=0; NODE *p=l.pHead; while(p) { if(p->Key%2==0) d++; p=p->pNext; } return d; } 4. Kiểm tra 4.1. Kiểm tra tồn tại một phần tử thỏa mãn điều kiện cho trước (SV tự vẽ hình minh họa) - Đầu vào: DSLK đơn l, điều kiện bên ngoài (nếu có: ví dụ giá trị x để so sánh) - Kết quả: Trả về 1 nếu thỏa điều kiện, ngược lại trả về 0 - Giải thuật: B1: p trỏ vào đầu danh sách B2: Nếu p = NULL thì trả về 0. Kết thúc B3: Nếu giá trị p thỏa điều kiện thì Trả về 1. Kết thúc B4: p trỏ đến phần tử kế tiếp, quay lại B2 - Cài đặt (Giả sử kiểm tra xem danh sách có tồn tại phần tử có giá trị lẻ trong danh sách số nguyên): int KiemTraTonTaiLe(LIST l) { NODE *p=l.pHead; while(p) { if(p->Key%2!=0) return 1; p=p->pNext; } return 0; } 4.2. Kiểm tra toàn bộ các phần tử thỏa mãn điều kiện cho trước - Đầu vào: DSLK đơn l, điều kiện bên ngoài (nếu có: ví dụ giá trị x để so sánh) - Kết quả: Trả về 1 nếu thỏa điều kiện, ngược lại trả về 0 - Giải thuật: B1: p trỏ vào đầu danh sách B2: Nếu p = NULL thì trả về 1. Kết thúc B3: Nếu giá trị p KHÔNG thỏa điều kiện thì Trả về 0. Kết thúc B4: p trỏ đến phần tử kế tiếp, quay lại B2 - Cài đặt (Giả sử kiểm tra xem toàn bộ các phần tử trong danh sách đều có giá trị chẵn trên danh sách số nguyên): int KiemTraToanChan(LIST l) { NODE *p=l.pHead; while(p) { if(p->Key%2!=0) return 0; p=p->pNext; } return 1; } Cài đặt (Giả sử kiểm tra xem danh sách số nguyên có tăng dần hay không): int KiemTraTang(LIST l) { NODE *p=l.pHead; while(p!=l.pTail) { if(p->Key > (p->pNext)->Key) return 0; p=p->pNext; } return 1; } . CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++ 3. Đếm 3.1. Đếm số phần tử (SV tự vẽ hình minh họa) - Đầu vào: DSLK đơn l - Kết quả: Trả về số lượng các phần. DSLK đơn l, điều kiện bên ngoài (nếu có: ví dụ giá trị x để so sánh) - Kết quả: Trả về số lượng các phần tử thỏa điều kiện trong danh sách - Giải thuật: B1: d=0 p trỏ vào đầu danh sách B2:. đơn l - Kết quả: Trả về số lượng các phần tử trong danh sách - Giải thuật: B1: d=0 p trỏ vào đầu danh sách B2: Nếu p = NULL thì trả về d. Kết thúc B3: d=d+1 B4: p trỏ đến phần tử kế tiếp,