CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - NGĂN XẾP potx

13 392 1
CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - NGĂN XẾP potx

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NGĂN XẾP STACK KHÁI NIỆM NGĂN XẾP  Là một danh sách tuyến tính  Bổ sung một phần tử vào ngăn xếp hoặc lấy một phần tử ra khỏi ngăn xếp chỉ thực hiện ở một đầu gọi là đỉnh ngăn xếp A B C D Đỉnh Đáy Hình ảnh ngăn xếp Item BIỂU DIỄN CẤU TRÚC DỮ LIỆU  N là độ dài của ngăn xếp  Item là kiểu dữ liệu của các phần tử  Ngăn xếp là một cấu trúc gồm 2 thành phần  Biến top lưu chỉ số của phần tử mảng lưu phần tử ở đỉnh ngăn xếp  Mảng E lưu các phần tử của ngăn xếp #define Max N //Định nghĩa kiểu Item struct Stack{ Item E[Max] ; int top ; } ; Stack S ; //Khai báo ngăn xếp S BIỂU DIỄN CẤU TRÚC DỮ LIỆU D C B A 0 1 2 top=3 Max=7 E Ngăn xếp Chưa có Mảng lưu trữ ngăn xếp 6 BIỂU DIỄN CẤU TRÚC DỮ LIỆU  N là độ dài của ngăn xếp  Item là kiểu dữ liệu của các phần tử  Ngăn xếp là một bản ghi gồm hai trường  Biến top lưu chỉ số của phần tử mảng lưu phần tử ở đỉnh ngăn xếp  Mảng E lưu các phần tử của ngăn xếp Const Max = N ; Type Stack = Record E : Array[1 Max] Of Item ; top : 0 Max ; End ; Var S : Stack ; {Khai báo ngăn xếp S} BIỂU DIỄN CẤU TRÚC DỮ LIỆU #define Max 100 struct Hoc_sinh{ char ho_ten[25]; int tuoi; float dtb; }; struct Stack{ Hoc_sinh E[Max]; int top; }; Stack S; Ví dụ: Ngăn xếp chứa thông tin học sinh CÁC PHÉP TOÁN TRÊN NX  Khởi tạo ngăn xếp rỗng void Initialize (Stack &S) { S.top = -1; }  Kiểm tra ngăn xếp rỗng int Empty (Stack S) { return (S.top == -1); } 0 1 2 3 Max=7 E 4 5 Ngăn xếp rỗng top = -1 6 CÁC PHÉP TOÁN TRÊN NX  Kiểm tra ngăn xếp đầy int Full (Stack S) { return (S.top == Max-1); } 0 1 2 3 Max=7 E G F E D C B A 4 5 Ngăn xếp đầy top = Max-16 CÁC PHÉP TOÁN TRÊN NX  Bổ sung một phần tử X vào đỉnh ngăn xếp S 0 1 2 Max=7 E D C B A 4 5 top = 4 0 1 2 3 Max=7 E D C B A 5 top 3 X top = 4 0 1 2 3 E X D C B A 5 6 6 Max=7 6 CÁC PHÉP TOÁN TRÊN NX  Bổ sung một phần tử vào đỉnh ngăn xếp S int PUSH (Stack &S, Item X) { if ( Full(S)) return 0; else { S.top++; S.E[S.top] = X; return 1; } } [...]... phần tử ở đỉnh ngăn xếp S Max=7 Max=7 6 6 5 5 4 4 D D 3 2 C top = 2 C 1 B 1 B 0 A 0 A top = 3 E E CÁC PHÉP TOÁN TRÊN NX  Lấy một phần tử ở đỉnh ngăn xếp S Int POP (Stack &S, Item &Y) { if (Empty(S)) return 0; else { Y = S.E[S.top]; S.top ; return 1; } } CÁC PHÉP TOÁN TRÊN NX  Ví dụ ứng dụng Viết chương trình: - Nhập số nguyên dương N - Đổi số N sang dạng mã nhị phân tương ứng của nó - In kết quả ra . LIỆU D C B A 0 1 2 top=3 Max=7 E Ngăn xếp Chưa có Mảng lưu trữ ngăn xếp 6 BIỂU DIỄN CẤU TRÚC DỮ LIỆU  N là độ dài của ngăn xếp  Item là kiểu dữ liệu của các phần tử  Ngăn xếp là một bản ghi gồm hai. ngăn xếp A B C D Đỉnh Đáy Hình ảnh ngăn xếp Item BIỂU DIỄN CẤU TRÚC DỮ LIỆU  N là độ dài của ngăn xếp  Item là kiểu dữ liệu của các phần tử  Ngăn xếp là một cấu trúc gồm 2 thành phần  Biến top. NGĂN XẾP STACK KHÁI NIỆM NGĂN XẾP  Là một danh sách tuyến tính  Bổ sung một phần tử vào ngăn xếp hoặc lấy một phần tử ra khỏi ngăn xếp chỉ thực hiện ở một đầu gọi là đỉnh ngăn xếp A B C D Đỉnh Đáy Hình

Ngày đăng: 29/03/2014, 00:20

Từ khóa liên quan

Mục lục

  • NGĂN XẾP

  • KHÁI NIỆM NGĂN XẾP

  • BIỂU DIỄN CẤU TRÚC DỮ LIỆU

  • Slide 4

  • Slide 5

  • Slide 6

  • CÁC PHÉP TOÁN TRÊN NX

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

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

Tài liệu liên quan