Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
0,97 MB
Nội dung
DATA STRUCTURE AND ALGORITHM Stack CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NGĂN XẾP Dr Dao Nam Anh Data Structure and Algorithm Outline – Nội dung • Stack - Ngăn xếp Khái niệm Stack Các thao tác Stack Hiện thực Stack Ứng dụng Stack Data Structure and Algorithm Resource - Reference Slides of James Joshi , and Nor Bahiah Hj Ahmad, edit by Dao Nam Anh Major Reference: • Robert Sedgewick, and Kevin Wayne, “Algorithms” Princeton University, 2011, Addison Wesley • Algorithm in C (Parts 1-5 Bundle)- Third Edition by Robert Sedgewick, Addison-Wesley • Cấu trúc liệu giải thuật, Đinh Mạnh Tường • Giải thuật lập trình, Lê Minh Hoàng, Đại Học Sư Phạm, 2002 Data Structure and Algorithm Khái niệm Stack • Stack danh sách mà đối tượng thêm vào lấy đầu danh sách (A stack is simply a list of elements with insertions and deletions permitted at one end) • Việc thêm đối tượng vào Stack lấy đối tượng khỏi Stack thực theo chế LIFO (Last In First Out - Vào sau trước) • Các đối tượng thêm vào Stack lúc có đối tượng thêm vào sau phép lấy khỏi Stack Data Structure and Algorithm Khái niệm Stack • Stack danh sách mà đối tượng thêm vào lấy đầu danh sách (A stack is simply a list of elements with insertions and deletions permitted at one end) • Việc thêm đối tượng vào Stack lấy đối tượng khỏi Stack thực theo chế LIFO (Last In First Out - Vào sau trước) • Các đối tượng thêm vào Stack lúc có đối tượng thêm vào sau phép lấy khỏi Stack Data Structure and Algorithm Khái niệm Stack • • Ví dụ: Chồng sách, chồng đĩa LAST IN FIRST OUT (LIFO) data structure Slide of Nor Bahiah Hj Ahmad, Software Engineering Department, FSKSM Data Structure and Algorithm Các thao tác Stack • Stack hỗ trợ thao tác chính: “Push”: Thao tác thêm đối tượng vào Stack “Pop”: Thao tác lấy đối tượng khỏi Stack push Data Structure and Algorithm Các thao tác Stack • Stack hỗ trợ thao tác chính: “Push”: Thao tác thêm đối tượng vào Stack “Pop”: Thao tác lấy đối tượng khỏi Stack push Data Structure and Algorithm Các thao tác Stack • Stack hỗ trợ thao tác chính: “Push”: Thao tác thêm đối tượng vào Stack “Pop”: Thao tác lấy đối tượng khỏi Stack Data Structure and Algorithm Các thao tác Stack • Stack hỗ trợ thao tác chính: “Push”: Thao tác thêm đối tượng vào Stack “Pop”: Thao tác lấy đối tượng khỏi Stack pop Data Structure and Algorithm 10 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • • Viết chương trình thực * (3 + 4) khó Viết chương trình thực + * dễ Sử dụng Stack – ngăn xếp Data Structure and Algorithm 55 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* Data Structure and Algorithm 56 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* 2 Data Structure and Algorithm 57 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* 3 2 Data Structure and Algorithm 58 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + 4 3 2 Data Structure and Algorithm 59 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + 4 3 2 2 Data Structure and Algorithm 60 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + * 4 3 7 2 2 Data Structure and Algorithm 61 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + * 4 3 7 2 2 14 Data Structure and Algorithm 62 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + * 4 3 7 2 2 14 Data Structure and Algorithm 63 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + * 4 3 7 2 2 14 Data Structure and Algorithm 64 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + * 4 3 7 2 2 14 Data Structure and Algorithm 65 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + * 4 3 7 2 2 14 Data Structure and Algorithm 66 Use Stack for Parsing RPN Expressions Sử dụng ngăn xếp RPN • Chương trình tính RPN sử dụng ngăn xếp 234+* + * 4 3 7 2 2 14 Data Structure and Algorithm 67 Thuật toán ngăn xếp Dijkstra • Thuật tốn ngăn xếp Dijkstra Data Structure and Algorithm 68 Discussion – Câu hỏi • https://sites.google.com/site/daonamanhedu/datastructure-algorithm Data Structure and Algorithm 69 ... Addison-Wesley • Cấu trúc liệu giải thuật, Đinh Mạnh Tường • Giải thuật lập trình, Lê Minh Hồng, Đại Học Sư Phạm, 2002 Data Structure and Algorithm Khái niệm Stack • Stack danh sách mà đối tượng thêm vào... xảy Data Structure and Algorithm 13 Stack implementation - Triển khai ngăn xếp • • Ngăn xếp cấu trúc liệu • • Triển khai ngăn xếp nào? • • Stack is an abstract data structure • How to implement... Triển khai Ngăn xếp danh sách liên kết Data Structure and Algorithm 31 Linked List Implementation of Stack Triển khai Ngăn xếp danh sách liên kết • • Có thể tạo Stack cách sử dụng danh sách liên