Duyệt danh sách liên kết Cấu trúc dữ liệu và giải thuật NEU

1 8 0
Duyệt danh sách liên kết  Cấu trúc dữ liệu và giải thuật NEU

Đang tải... (xem toàn văn)

Thông tin tài liệu

Dạng bài tập số 3: dựa trên cơ sở thuật toán duyệt danh sách liên kết đơn sau đây: Procedure Linked Traverse (L: PointerType); Var CurrPtr: PointerType; Begin CurrPtr:=L; {truy nhập đến nút đầu của danh sách} While CurrPtr 0 do {vòng lặp duyệt danh sách} Begin Write(NodeCurrPtr.Data); {in ra dữ liệu nút hiện thời} CurrPtr:= NodeCurrPtr.Next {chuyển sang nút tiếp theo} End; end; Thủ tục xử lý danh sách cũng là các thuật toán xử lý cơ bản như: tính tổng, trung bình, tìm max, min. ⇒ Vẫn tuân thủ theo đúng nguyên tắc là thay thế lệnh xử lý dữ liệu của nút hiện thời bằng lệnh xử lý đặc trưng của thuật toán. ⇒ Trong bài kiểm tra các em phải thực hiện việc duyệt danh sách 2 lần, 1 lần để tính giá trị trung bình, lần 2 để đếm số nút có giá trị lớn hơn trung bình Procedure Linked Traverse(L: PointerType); Var CurrPtr: Pointer Type; Tong, dem, tb, soluong: real; Begin CurrPtr:=L; {truy nhập đến nút đầu của danh sách} While CurrPtr 0 do {vòng lặp duyệt danh sách} Begin Tong:=tong+NodeCurrPtr.Data; {xử lý dữ liệu nút hiện thời} Dem:=dem+1; CurrPtr:= NodeCurrPtr.Next {chuyển sang nút tiếp theo} End; Tb:=tongdem; {đếm số lượng lớn hơn tb} CurrPtr:=L; {truy nhập đến nút đầu của danh sách} While CurrPtr 0 do {vòng lặp duyệt danh sách} Begin IF NodeCurrPtr.Data>TB THEN soluong:=soluong+1; CurrPtr:= NodeCurrPtr.Next {chuyển sang nút tiếp theo} End; Write(soluong); {in ra kết quả} END;

Dạng tập số 3: dựa sở thuật toán duyệt danh sách liên kết đơn sau đây: Procedure Linked Traverse (L: PointerType); Var CurrPtr: PointerType; Begin CurrPtr:=L; {truy nhập đến nút đầu danh sách} While CurrPtr {vòng lặp duyệt danh sách} Begin Write(Node[CurrPtr].Data); {in liệu nút thời} CurrPtr:= Node[CurrPtr].Next {chuyển sang nút tiếp theo} End; end; Thủ tục xử lý danh sách thuật toán xử lý như: tính tổng, trung bình, tìm max, Vẫn tn thủ theo nguyên tắc thay lệnh xử lý liệu nút thời lệnh xử lý đặc trưng thuật toán Trong kiểm tra em phải thực việc duyệt danh sách lần, lần để tính giá trị trung bình, lần để đếm số nút có giá trị lớn trung bình Procedure Linked Traverse(L: PointerType); Var CurrPtr: Pointer Type; Tong, dem, tb, soluong: real; Begin CurrPtr:=L; {truy nhập đến nút đầu danh sách} While CurrPtr {vòng lặp duyệt danh sách} Begin Tong:=tong+Node[CurrPtr].Data; {xử lý liệu nút thời} Dem:=dem+1; CurrPtr:= Node[CurrPtr].Next {chuyển sang nút tiếp theo} End; Tb:=tong/dem; {đếm số lượng lớn tb} CurrPtr:=L; {truy nhập đến nút đầu danh sách} While CurrPtr {vòng lặp duyệt danh sách} Begin IF Node[CurrPtr].Data>TB THEN soluong:=soluong+1; CurrPtr:= Node[CurrPtr].Next {chuyển sang nút tiếp theo} End; Write(soluong); {in kết quả} END;

Ngày đăng: 08/11/2023, 23:57

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan