DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢI (tt) pot

31 1.9K 17
DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢI (tt) pot

Đ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

CHƯƠNG I : TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢI CHƯƠNG II : MỘT SỐ THUẬT TOÁN TÌM KIẾM VÀ SẮP XẾP CHƯƠNG III : DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢI CHƯƠNG IV : CÂY I. NGĂN XẾP ( STACK ) 1. Giới Thiệu Top LIFO: Last In First Out - Vào Sau Ra Trước.  Ngăn xếp (Stack) là một danh sách mà ta giới hạn việc thêm vào hoặc loại bỏ một phần tử chỉ thực hiện tại một đầu của danh sách, đầu này gọi là đỉnh (TOP) của ngăn xếp.  LIFO: Last In First Out - vào sau ra trước.  Các thao tác trong stack:  Push: chèn phần tử mới vào stack  Pop: lấy phần tử đầu stack ra khỏi stack  Top: kiểm tra phần tử đầu stack I. NGĂN XẾP ( STACK ) 1. Định Nghĩa I. NGĂN XẾP ( STACK ) 2. Khai báo cấu trúc dữ liệu cho stack NULL pFirst 0 1 2 3 4 5 6 7 8 4 4 14 14 22 22 38 38 19 19 I. NGĂN XẾP ( STACK ) 2. Khai báo cấu trúc dữ liệu cho stack Khai báo ngăn xếp dạng mảng # define size 200 struct stack { int n; <Kiểu dữ liệu> e [size]; int Top_idx; //giữ vị trí đỉnh ngăn xếp }; Khai báo ngăn xếp dạng DSLK struct stack { int info; stack *pNext; };  Tạo một ngăn xếp rỗng.  Hàm trả về phần tử tại đỉnh ngăn xếp. Nếu ngăn xếp rỗng thì hàm không xác định.  Chương trình con xoá một phần tử tại đỉnh ngăn xếp.  Chương trình con thêm một phần tử x vào đầu ngăn xếp.  Hàm kiểm tra ngăn xếp rỗng. Hàm cho kết quả 1 (true) nếu ngăn xếp rỗng và 0 (false) trong trường hợp ngược lại. I. NGĂN XẾP ( STACK ) 2. Các phép toán trên ngăn xếp I. NGĂN XẾP ( STACK ) 2. Các phép toán trên ngăn xếp 2.1 Cài đặt bằng DSLK  InitializeStack: Khởi động một Stack. Ban đầu Stack chưa có phần tử. void InitializeStack (stack* &Top) { Top = NULL; }  EmptyStack( ): Kiểm tra Stack rỗng. int EmptyStack (stack *Top) { return (Top == NULL ? 1 : 0); } I. NGĂN XẾP ( STACK ) 2. Các phép toán trên ngăn xếp 2.1 Cài đặt bằng DSLK  Push( ): thêm một phần tử có nội dung x vào đầu Stack. void Push (stack* &Top, int x) { stack *p; p = new stack; p->info = x; p->pNext = Top; Top = p; } I. NGĂN XẾP ( STACK ) 2. Các phép toán trên ngăn xếp 2.1 Cài đặt bằng DSLK  Pop( ): Lấy phần tử đầu danh sách. void Pop (stack* &Top) { stack *p; if (Empty (Top)) cout << “List is empty.\n”; else { p = Top; Top = p->pNext; delete p; } } I. NGĂN XẾP ( STACK ) 2. Các phép toán trên ngăn xếp 2.1 Cài đặt bằng DSLK  GetTop( ): Lấy thông tin về phần tử đầu danh sách. int GetTop (stack* Top) { stack *p; p = Top; if (p != NULL ) return (p->info); else { cout << " List is empty "; return (-1); } } [...]... của danh sách, gọi là đầu hàng (FRONT) Xếp hàng mua vé xem phim là một hình ảnh trực quan của khái niệm trên, người mới đến thêm vào cuối hàng còn người ở đầu hàng mua vé và ra khỏi hàng, vì vậy hàng còn được gọi là cấu trúc FIFO (first in - first out) hay "vào trước - ra trước" FRONT REAR 1 0 1 2 42 3 8 4 13 5 14 6 7 8 II HÀNG ĐỢI (QUEUE) 1 Khai báo cấu trúc dữ liệu cho hàng đợi Khai báo hàng đợi. .. //chuyen n-1 dia tu coc nguon sang coc trung gian Move(N-1, A,C,B); //chuyen 1 dia tu coc nguon sang coc dich Move(1,A,B,C); //chuyen n-1 dia tu coc trung gian sang coc dich Move(N-1,C,B,A); } II HÀNG ĐỢI (QUEUE) 1 Định Nghĩa II HÀNG ĐỢI (QUEUE) 1 Định Nghĩa Hàng đợi, hay ngắn gọn là hàng (queue) cũng là một danh sách đặc biệt mà phép thêm vào chỉ thực hiện tại một đầu của danh sách, gọi là cuối hàng (REAR),... (Q.Front == NULL ? 1 : 0); } II HÀNG ĐỢI (QUEUE) 2 Các phép toán trên hàng đợi 2.1 Cài đặt bằng DSLK  Thêm một phần tử có nội dung x vào Queue void EnQueue ( int x, Queue &Q ) { Rear node *p; p = new node; p->info = x; p->pNext = NULL; NULL Q.Rear->pNext = p; Q.Rear = p; if (EmptyQueue(Q)) { Q.Front = Q.Rear; } } Front NULL II HÀNG ĐỢI (QUEUE) 2 Các phép toán trên hàng đợi 2.1 Cài đặt bằng DSLK  Lấy... empty”; } I NGĂN XẾP ( STACK ) 2 Các phép toán trên ngăn xếp 2.2 Cài đặt bằng mảng  Lấy giá trị phần tử đầu Stack int TopStack(stack S) { if (!Empty_Stack(S)) return S.e[S.Top_idx]; else { cout . QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢI CHƯƠNG II : MỘT SỐ THUẬT TOÁN TÌM KIẾM VÀ SẮP XẾP CHƯƠNG III : DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢI CHƯƠNG IV : CÂY I. NGĂN XẾP ( STACK ) 1. Giới Thiệu Top LIFO:. x vào đầu ngăn xếp.  Hàm kiểm tra ngăn xếp rỗng. Hàm cho kết quả 1 (true) nếu ngăn xếp rỗng và 0 (false) trong trường hợp ngược lại. I. NGĂN XẾP ( STACK ) 2. Các phép toán trên ngăn xếp. Out - Vào Sau Ra Trước.  Ngăn xếp (Stack) là một danh sách mà ta giới hạn việc thêm vào hoặc loại bỏ một phần tử chỉ thực hiện tại một đầu của danh sách, đầu này gọi là đỉnh (TOP) của ngăn xếp.

Ngày đăng: 02/08/2014, 18:21

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

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

Tài liệu liên quan