Tìm max trong danh sách liên kết đơn C
Ngày đăng:
12/01/2022
Trả lời:
0
Lượt xem:
89
CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++ pdfBạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (161.26 KB, 5 trang ) Đầu vào: DSLK đơn l, giá trị x - Kết quả: Trả về con trỏ tìm được (hoặc NULL: Nếu không có x) - Giải thuật: B1: p trỏ vào đầu danh sách B2: Nếu p = NULL thì trả về NULL. Kết thúc Ngược lại sang B3 B3: Nếu giá trị p = x thì trả về p. Kết thúc B4: p trỏ đến phần tử kế tiếp, quay lại B2 - Cài đặt (Giả sử tìm phần tử có giá trị x trên danh sách số nguyên): NODE *TimX(LIST l, int x) { NODE *p=l.pHead; while(p) { if(p->Key==x) return p; p=p->pNext; } return NULL; } 1.2. Tìm phần tử có giá trị max / min (SV tự vẽ hình minh họa) Đầu vào: DSLK đơn l - Kết quả: Trả về con trỏ max tìm được - Giải thuật: B1: pMax trỏ vào đầu danh sách p trỏ vào sau pMax B2: Nếu p = NULL thì trả về pMax. Kết thúc Trang 3 GV: Trần Minh Thái Ngược lại sang B3 B3: Nếu giá trị p > giá trị pMax thì gán pMax = p B4: p trỏ đến phần tử kế tiếp quay lại B2 - Cài đặt (Giả sử tìm max trên danh sách số nguyên): NODE *TimMax(LIST l) { NODE *pMax=l.pHead, *p=pMax->pNext; while(p) { if(p->Key>pMax->Key) pMax = p; p=p->pNext; } return pMax; } 1.3. Tìm phần tử có giá trị thỏa điều kiện xuất hiện đầu tiên (Giả sử phần tử có giá trị chẵn xuất hiện đầu tiên trên danh sách số nguyên) (SV tự vẽ hình minh họa) - Đầu vào: DSLK đơn l - Kết quả: Trả về con trỏ chứa giá trị chẵn đầu tiên tìm được (hoặc NULL: Nếu không có chẵn) - Giải thuật: B1: p trỏ vào đầu danh sách B2: Nếu p = NULL thì trả về NULL. Kết thúc Ngược lại sang B3 B3: Nếu giá trị p là chẵn thì trả về p. Kết thúc B4: p trỏ đến phần tử kế tiếp, quay lại B2 -Cài đặt: NODE *TimChanDau(LIST l) { NODE *p=l.pHead; while(p) { if(p->Key%2==0) return p; p=p->pNext; } return NULL; } 1.4. Tìm phần tử có giá trị thỏa điều kiện xuất hiện cuối cùng (Giả sử phần tử có giá trị chẵn xuất hiện cuối cùng trên danh sách số nguyên) (SV tự vẽ hình minh họa) Đầu vào: DSLK đơn l - Kết quả: Trả về con trỏ chứa giá trị chẵn xuất hiện cuối cùng (hoặc NULL: Nếu không có chẵn) - Giải thuật: B1: p trỏ vào đầu danh sách pChanCuoi=NULL; B2: Nếu p = NULL thì trả về pChanCuoi. Kết thúc Ngược lại sang B3 B3: Nếu giá trị p là chẵn thì gán pChanCuoi = p B4: p trỏ đến phần tử kế tiếp, quay lại B2 |