Danh mục

bài giảng các chuyên đề phần 3

Số trang: 25      Loại file: pdf      Dung lượng: 505.73 KB      Lượt xem: 8      Lượt tải: 0    
10.10.2023

Phí tải xuống: 9,000 VND Tải xuống file đầy đủ (25 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu bài giảng các chuyên đề phần 3, công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
bài giảng các chuyên đề phần 3Cấu trúc dữ liệu và giải thuật 20 Value 1 Value n Value 2 Value n-1 ... ...Bài tập1. Lập chương trình quản lý danh sách học sinh, tuỳ chọn loại danh sách cho phù hợp, chương trìnhcó những chức năng sau: (Hồ sơ một học sinh giả sử có: Tên, lớp, số điện thoại, điểm TB ...)• Cho phép nhập danh sách học sinh từ bàn phím hay từ file.• Cho phép in ra danh sách học sinh gồm có tên và xếp loại• Cho phép in ra danh sách học sinh gồm các thông tin đầy đủ• Cho phép nhập vào từ bàn phím một tên học sinh và một tên lớp, tìm xem có học sinh có tên nhập vào trong lớp đó không ?. Nếu có thì in ra số điện thoại của học sinh đó• Cho phép vào một hồ sơ học sinh mới từ bàn phím, bổ sung học sinh đó vào danh sách học sinh, in ra danh sách mới.• Cho phép nhập vào từ bàn phím tên một lớp, loại bỏ tất cả các học sinh của lớp đó khỏi danh sách, in ra danh sách mới.• Có chức năng sắp xếp danh sách học sinh theo thứ tự giảm dần của điểm trung bình• Cho phép nhập vào hồ sơ một học sinh mới từ bàn phím, chèn học sinh đó vào danh sách mà không làm thay đổi thứ tự đã sắp xếp, in ra danh sách mới.• Cho phép lưu trữ lại trên đĩa danh sách học sinh khi đã thay đổi.2. Có n người đánh số từ 1 tới n ngồi quanh một vòng tròn (n ≤ 10000), cùng chơi một trò chơi:Một người nào đó đếm 1, người kế tiếp, theo chiều kim đồng hồ đếm 2... cứ như vậy cho tới ngườiđếm đến một số nguyên tố thì phải ra khỏi vòng tròn, người kế tiếp lại đếm bắt đầu từ 1:Hãy lập chương trìnha) Nhập vào 2 số n và S từ bàn phímb) Cho biết nếu người thứ nhất là người đếm 1 thì người còn lại cuối cùng trong vòng tròn là người thứ mấyc) Cho biết nếu người còn lại cuối cùng trong vòng tròn là người thứ k thì người đếm 1 là người nào?.d) Giải quyết hai yêu cầu trên trong trường hợp: đầu tiên trò chơi được đếm theo chiều kim đồng hồ, khi có một người bị ra khỏi cuộc chơi thì vẫn là người kế tiếp đếm 1 nhưng quá trình đếm ngược lại (tức là ngược chiều kim đồng hồ)Lê Minh HoàngCấu trúc dữ liệu và giải thuật 21 §4. NGĂN XẾP VÀ HÀNG ĐỢII. NGĂN XẾP (STACK)Ngăn xếp là một kiểu danh sách được trang bị hai phép toán bổ sung một phần tử vào cuối danhsách và loại bỏ một phần tử cũng ở cuối danh sách.Có thể hình dung ngăn xếp như hình ảnh một chồng đĩa, đĩa nào được đặt vào chồng sau cùng sẽnằm trên tất cả các đĩa khác và sẽ được lấy ra đầu tiên. Vì nguyên tắcvào sau ra trước đó, Stackcòn có tên gọi là danh sách kiểu LIFO (Last In First Out) và vị trí cuối danh sách được gọi là đỉnh(Top) của Stack.1. Mô tả Stack bằng mảngKhi mô tả Stack bằng mảng:• Việc bổ sung một phần tử vào Stack tương đương với việc thêm một phần tử vào cuối mảng.• Việc loại bỏ một phần tử khỏi Stack tương đương với việc loại bỏ một phần tử ở cuối mảng.• Stack bị tràn khi bổ sung vào mảng đã đầy• Stack là rỗng khi số phần tử thực sự đang chứa trong mảng = 0.program StackByArray;const max = 10000;var Stack: array[1..max] of Integer; Last: Integer; {Khởi tạo Stack rỗng}procedure StackInit;begin Last := 0;end;procedure Push(V: Integer); {Đẩy một giá trị V vào Stack}begin {Nếu Stack đã đầy thì không đẩy được thêm vào nữa} if Last = max then WriteLn(Stack is full) else begin {Nếu không thì thêm một phần tử vào cuối mảng} Inc(Last); Stack[Last] := V; end;end; {Lấy một giá trị ra khỏi Stack, trả về trong kết quả hàm}function Pop: Integer;begin {Stack đang rỗng thì không lấy được} if Last = 0 then WriteLn(Stack is empty) else begin {Lấy phần tử cuối ra khỏi mảng} Pop := Stack[Last]; Dec(Last); end;end;begin StackInit; ;end.Khi cài đặt bằng mảng, tuy các thao tác đối với Stack viết hết sức đơn giản nhưng ở đây ta vẫn chiathành các chương trình con, mỗi chương trình con mô tả một thao tác, để từ đó về sau, ta chỉ cầnbiết rằng chương trình của ta có một cấu trúc Stack, còn ta mô phỏng cụ thể như thế nào thì khôngLê Minh HoàngCấu trúc dữ liệu và giải thuật 22cần phải quan tâm nữa, và khi cài đặt Stack bằng các cấu trúc dữ liệu khác, chỉ cần sửa lại các thủtục StackInit, Push và Pop mà thôi.2. Mô tả Stack bằng danh sách ...

Tài liệu được xem nhiều: