1. Trang chủ
  2. » Thể loại khác

danh-sach-lien-ket pdf

156 1.7K 0

Đ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

Cấu trúc

  • CHAPTER 6: LINKED LISTS

  • Cấu trúc dữ liệu động

  • Mục tiêu

  • Kiểu dữ liệu tĩnh

  • CTDL tĩnh – Một số hạn chế

  • CTDL tĩnh

  • Cấu trúc dữ liệu động

  • Hướng giải quyết

  • Slide 9

  • Biến không động

  • Biến động

  • Slide 12

  • Slide 13

  • Slide 14

  • Biến động – Ví dụ

  • Kiểu dữ liệu Con trỏ

  • Con trỏ – Khai báo

  • Con trỏ – Thao tác căn bản

  • Danh sách liên kết (List)

  • Slide 20

  • Slide 21

  • Slide 22

  • Danh sách liên kết (List)

  • Slide 24

  • Danh sách liên kết đơn (xâu đơn)

  • DSLK - định nghĩa

  • Cấu trúc dữ liệu của DSLK đơn

  • Lưu trữ DSLK đơn trong RAM

  • DSLK đơn truy xuất – Minh họa

  • Tổ chức, quản lý

  • DSLK – Khai báo phần Data

  • Slide 32

  • Tạo một phần tử

  • Slide 34

  • Các thao tác cơ sở

  • Khởi tạo danh sách rỗng

  • Thêm một phần tử

  • Thêm một phần tử

  • Thêm một phần tử vào đầu

  • Slide 40

  • Slide 41

  • Thêm một thành phần dữ liệu vào đầu

  • Slide 43

  • Tạo Link list bằng cách thêm vào đầu

  • Thêm một phần tử vào cuối

  • Slide 46

  • Slide 47

  • Thêm một thành phần dữ liệu vào cuối

  • Slide 49

  • Tạo Link list bằng cách thêm vào cuối

  • Chèn một phần tử sau q

  • Slide 52

  • Slide 53

  • Duyệt danh sách

  • Slide 55

  • DSLK – Minh họa in danh sách

  • Slide 57

  • Slide 58

  • Slide 59

  • Slide 60

  • Slide 61

  • Slide 62

  • Slide 63

  • Slide 64

  • Slide 65

  • Slide 66

  • Slide 67

  • In các phần tử trong danh sách

  • Tìm kiếm một phần tử có khóa x

  • Xóa một node của danh sách

  • Slide 71

  • Slide 72

  • Slide 73

  • Xóa node sau node q trong danh sách

  • Slide 75

  • Hủy toàn bộ danh sách

  • Slide 77

  • Sắp xếp trên danh sách liên kết đơn

  • Sắp xếp danh sách

  • Sắp xếp danh sách Hoán vị nội dung các phần tử trong danh sách

  • Slide 81

  • Slide 82

  • Slide 83

  • Slide 84

  • Slide 85

  • Slide 86

  • Sắp xếp bằng phương pháp chọn trực tiếp ( Selection sort )

  • Slide 88

  • Slide 89

  • Slide 90

  • Slide 91

  • Slide 92

  • Sắp xếp bằng phương pháp nổi bọt ( Bubble sort )

  • Slide 94

  • Slide 95

  • Slide 96

  • Slide 97

  • Slide 98

  • Sắp xếp Thay đổi các mối liên kết

  • Phương pháp lấy Node ra khỏi danh sách giữ nguyên địa chỉ của Node

  • Quick Sort : Thuật toán

  • Sắp xếp quick sort

  • Quick sort : phân hoạch

  • Slide 104

  • Slide 105

  • Slide 106

  • Slide 107

  • Quick sort

  • Slide 109

  • Nối 2 danh sách

  • Slide 111

  • Quick sort : nhận xét

  • Danh sách hạn chế

  • Stack ( Chồng )

  • Slide 115

  • Giới thiệu

  • Hiện thực stack

  • Slide 118

  • Biểu diễn Stack dùng mảng

  • Slide 120

  • Khai báo stack

  • Slide 122

  • Slide 123

  • Slide 124

  • Slide 125

  • Biểu diễn Stack dùng danh sách liên kết

  • Slide 127

  • Slide 128

  • Slide 129

  • Slide 130

  • Ứng dụng của Stack

  • Slide 132

  • Hàng đợi ( Queue)

  • Slide 134

  • Slide 135

  • Slide 136

  • Biểu diễn Queue dùng mảng

  • Slide 138

  • Slide 139

  • Slide 140

  • Slide 141

  • Slide 142

  • Slide 143

  • Slide 144

  • Slide 145

  • Biểu diễn hàng đợi dùng danh sách liên kết

  • Slide 147

  • Slide 148

  • Slide 149

  • Slide 150

  • Slide 151

  • Ứng dụng của hàng đợi

  • Ứng dụng STACK để khử đệ quy cho bài toán tháp Hà Nội

  • Bài toán Tháp Hà nội

  • Bài toán Tháp Hà nội – Thiết kế hàm

  • Bài toán Tháp Hà nội – Mã C++

Nội dung

CHAPTER 6: LINKED LISTS Cấu trúc dữ liệu động 3 Mục Mục tiêu tiêu  Giới Giới thiệu thiệu khái khái niệm niệm cấu cấu trúc trúc dữ dữ liệu liệu động động . .  Giới Giới thiệu thiệu danh danh sách sách liên liên kết kết : :  Các Các kiểu kiểu tổ tổ chức chức dữ dữ liệu liệu theo theo DSLK DSLK . .  Danh Danh sách sách liên liên kết kết đơn đơn : : tổ tổ chức chức , , các các thuật thuật toán toán , , ứng ứng dụng dụng . . 4 Kiểu Kiểu dữ dữ liệu liệu tĩnh tĩnh  Khái niệm : Một số đối tượng dữ liệu không thay thay đổi Khái niệm : Một số đối tượng dữ liệu không thay thay đổi được kích thước, cấu trúc, … trong suốt quá trình sống. được kích thước, cấu trúc, … trong suốt quá trình sống. Các đối tượng dữ liệu thuộc những kiểu dữ liệu gọi là kiểu Các đối tượng dữ liệu thuộc những kiểu dữ liệu gọi là kiểu dữ liệu tĩnh. dữ liệu tĩnh.  Một số kiểu dữ liệu tĩnh : các cấu trúc dữ liệu được xây Một số kiểu dữ liệu tĩnh : các cấu trúc dữ liệu được xây dựng từ các kiểu cơ sở như: kiểu thực, kiểu nguyên, kiểu dựng từ các kiểu cơ sở như: kiểu thực, kiểu nguyên, kiểu ký tự hoặc từ các cấu trúc đơn giản như mẩu tin, tập ký tự hoặc từ các cấu trúc đơn giản như mẩu tin, tập hợp, mảng hợp, mảng   Các đối tượng dữ liệu được xác định thuộc những kiểu dữ Các đối tượng dữ liệu được xác định thuộc những kiểu dữ liệu này thường cứng ngắt, gò bó liệu này thường cứng ngắt, gò bó   khó diễn tả được thực khó diễn tả được thực tế vốn sinh động, phong phú. tế vốn sinh động, phong phú. 5 CTDL CTDL tĩnh tĩnh – – Một Một số số hạn hạn chế chế  Một Một số số đối đối tượng tượng dữ dữ liệu liệu trong trong chu chu kỳ kỳ sống sống của của nó nó có có thể thể thay thay đổi đổi về về cấu cấu trúc trúc , , độ độ lớn lớn , , như như danh danh sách sách các các học học viên viên trong trong một một lớp lớp học học có có thể thể tăng tăng thêm thêm , , giảm giảm đi đi Nếu Nếu dùng dùng những những cấu cấu trúc trúc dữ dữ liệu liệu tĩnh tĩnh đã đã biết biết như như mảng mảng để để biểu biểu diễn diễn   Những Những thao thao tác tác phức phức tạp tạp , , kém kém tự tự nhiên nhiên   chương chương trình trình khó khó đọc đọc , , khó khó bảo bảo trì trì và và nhất nhất là là khó khó có có thể thể sử sử dụng dụng bộ bộ nhớ nhớ một một cách cách có có hiệu hiệu quả quả . .  Dữ Dữ liệu liệu tĩnh tĩnh sẽ sẽ chiếm chiếm vùng vùng nhớ nhớ đã đã dành dành cho cho chúng chúng suốt suốt quá quá trình trình hoạt hoạt động động của của chương chương trình trình   sử sử dụng dụng bộ bộ nhớ nhớ kém kém hiệu hiệu quả quả . . 6 CTDL tĩnh CTDL tĩnh  Mảng 1 chiều Mảng 1 chiều  Kích thước cố định (fixed size) Kích thước cố định (fixed size)  Chèn 1 phần tử vào mảng rất khó Chèn 1 phần tử vào mảng rất khó  Các phần tử tuần tự theo chỉ số 0 Các phần tử tuần tự theo chỉ số 0 ⇒ ⇒ n-1 n-1  Truy cập ngẫu nhiên (random access) Truy cập ngẫu nhiên (random access) 0 1 2 3 4 n-2 n-1 chè n 7 Cấu trúc dữ liệu động Cấu trúc dữ liệu động  Danh sách liên kết Danh sách liên kết  Cấp phát động lúc chạy chương trình Cấp phát động lúc chạy chương trình  Các phần tử nằm rải rác ở nhiều nơi trong bộ nhớ Các phần tử nằm rải rác ở nhiều nơi trong bộ nhớ  Kích thước danh sách chỉ bị giới hạn do RAM Kích thước danh sách chỉ bị giới hạn do RAM  Thao tác thêm xoá đơn giản Thao tác thêm xoá đơn giản Insert, Delete 8 Hướng Hướng giải giải quyết quyết  Cần Cần xây xây dựng dựng cấu cấu trúc trúc dữ dữ liệu liệu đáp đáp ứng ứng được được các các yêu yêu cầu cầu : :  Linh Linh động động hơn hơn . .  Có Có thể thể thay thay đổi đổi kích kích thước thước , , cấu cấu trúc trúc trong trong suốt suốt thời thời gian gian sống sống . .   Cấu Cấu trúc trúc dữ dữ liệu liệu động động . . Danh sách liên kết Danh sách liên kết ( LINKED LIST ) ( LINKED LIST ) 10 Biến Biến không không động động Biến Biến không không động động ( ( biến biến tĩnh tĩnh , , biến biến nửa nửa tĩnh tĩnh ) ) là là những những biến biến thỏa thỏa : :  Được Được khai khai báo báo tường tường minh minh , ,  Tồn Tồn tại tại khi khi vào vào phạm phạm vi vi khai khai báo báo và và chỉ chỉ mất mất khi khi ra ra khỏi khỏi phạm phạm vi vi này này , ,  Được Được cấp cấp phát phát vùng vùng nhớ nhớ trong trong vùng vùng dữ dữ liệu liệu ( ( Data Data segment segment ) ) hoặc hoặc là là Stack Stack ( ( đối đối với với biến biến nửa nửa tĩnh tĩnh - - các các biến biến cục cục bộ bộ ). ).  Kích Kích thước thước không không thay thay đổi đổi trong trong suốt suốt quá quá trình trình sống sống . .  Do Do được được khai khai báo báo tường tường minh minh , , các các biến biến không không động động có có một một định định danh danh đã đã được được kết kết nối nối với với địa địa chỉ chỉ vùng vùng nhớ nhớ lưu lưu trữ trữ biến biến và và được được truy truy xuất xuất trực trực tiếp tiếp thông thông qua qua định định danh danh đó đó . .  Ví Ví dụ dụ : : int a; // a, b là các biến không động char b[10];

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

TỪ KHÓA LIÊN QUAN