1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Thao tác với danh sách

26 8 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

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 333,11 KB

Nội dung

Bài giảng Thao tác với danh sách cung cấp đến người học kiến thức về mô hình cấu trúc dữ liệu mảng; mô hình cấu trúc dữ liệu tự trỏ; một số cấu trúc dữ liệu. Mời các bạn cùng tham khảo bài giảng để nắm chi tiết hơn nội dung kiến thức.

Giới thiệu Thao tác với danh sách Nội dung trình bày • Mơ hình cấu trúc liệu mảng • Mơ hình cấu trúc liệu tự trỏ  Danh sách liên kết đơn  Danh sách liên kết vịng  Danh sách liên kết đơi • Một số cấu trúc liệu  Cấu trúc liệu stack  Cấu trúc liệu queue Cấu trúc liệu mảng • Là dãy phần tử liên tiếp nhớ  Một mảng trỏ trỏ  Một mảng mối khối nhớ liên tục  Truy xuất phần tử mảng ngẫu nhiên (truy xuất đến phần tử theo số) • Đặc trưng quản lý  Mảng cấp phát thời điểm khai báo  Không thay đổi số lượng phần tử mảng thời điểm thực  Cần khai báo lượng tối đa cần phải lưu trữ Cấu trúc liệu mảng (t) • Sử dụng trỏ, cấp phát động  Dữ liệu cấp phát thời điểm hoạt động  Sự thay đổi dung lượng nhó khó khăn Cấu trúc liệu mảng (t) • Phù hợp  Không gian liệu bé, ổn định  Cần phải tính tốn với truy xuất phần tử ngẫu nhiên  Ví dụ: xếp đếm, xếp bọt, chọn, tìm kiếm nhị phân… • Khơng phù hợp  Dữ liệu lớn, thay đổi thường xuyên dung lượng  Xử lý theo phương thức Cấu trúc tự trỏ • Cấu trúc tự trỏ đến thân typedef struct {Tên_kiểu} { {Kiểu_1} {Tên_trường_1} ; next;  return t; 10 Danh sách liên kết đơn (t) • Int addhead(list *head, int x)  T=malloc(sizeof(list));  If(T==null) • Return -1;  T->data=x;  T->next=head;  Head=t; 12 Danh sách liên kết đơn (t) lifo NULL lifo NULL lifo NULL 13 Danh sách liên kết đơn (t) • Int deletehead(list *head, int *x)  If(head==null) • Return -1;      T=head; Head=t->next; *X=t->data; Free(t); Return 0; 14 Danh sách liên kết vịng • Thay phần tử đến null, danh sách liên kết vòng đến head;  Tạo vịng, phần tử vịng đầu  Các thao tác cần kiểm tra với trỏ head để biết kết thúc vòng  Phù hợp với dạng liệu mơ tả vịng 15 Danh sách liên kết đơi • Mỗi phần từ định nghĩa có trỏ left right;  Con trỏ left phần tử bên trái, right phần tử phải  Mọi thao tác cần thực với hai trỏ  Cho phép duyệt theo chiều ngược xi 16 Cấu trúc liệu stack • • • • • Khởi tạo – Init Đưa phần tử vào stack – push Lấy phần tử khỏi stack – pop Kiểm tra rỗng – isempty Kiểm tra giá trị đỉnh - gettop 17 Cấu trúc liệu stack (t) • Triển khai mảng  Khai báo mảng đủ  Dùng số để quy định phần tử đỉnh • Sử dụng danh sách liên kết     Init – init Push-addhead Pop-deletehead Isempty – isempty 18 Cấu trúc liệu stack (t) • Int gettop(list *head, int *x)  If(head==null) return -1;  X=head->data;  Return 0; 19 Cấu trúc liệu queue • • • • Khởi tạo – Init Đưa phần tử vào stack – put Lấy phần tử khỏi stack – get Kiểm tra rỗng – isempty 20 Cấu trúc liệu queue (t) • Triển khai dạng mảng  Sử dụng mảng với độ lớn chấp nhận  Sử dụng hai trỏ đầu đuôi để đưa vào lấy  Do việc tăng liên tục nên cần kiểm tra tình số đủ lớn quay lại • Triển khai dạng danh sách liên kết  Sử dụng hai trỏ head, tail để thêm vào lấy  Thêm head, lấy head 21 Cấu trúc liệu queue (t) • Init(list *head, *tail)  Head=null  Tail=null • Isempty(list*head, *tail)  If(head==null) • Return  Return -1 22 Cấu trúc liệu queue (t) • Int Put(list *head, *tail, int x)  T=malloc(sizeof(list));  If(t==null) • Return -1;  T->data=x;  T->next=null;  If(head==null) • Head=t; • Tail=t;  Tail->next=t;  Tail=t;  Return 0; 23 Cấu trúc liệu queue (t) • Int get(list *head, * tail, int *x)  If(head==null) • Return -1;       T=head; Head=head->next; If(head==null) tail=null; *x=t->data; Free(t); Return 0; 24 Nội dung trình bày • Mơ hình cấu trúc liệu mảng • Mơ hình cấu trúc liệu tự trỏ  Danh sách liên kết đơn  Danh sách liên kết vòng  Danh sách liên kết đơi • Một số cấu trúc liệu  Cấu trúc liệu stack  Cấu trúc liệu queue 25 Bài tập - Triển khai kiểu liệu - - Stack - - Mảng Danh sách liên kết Queue - - Danh sách liên kết đơn Danh sách liên kết vòng Danh sách liên kết kép Mảng Danh sách liên kết Chuẩn bị toán chuyển trung tố hậu, tố, tính tốn số lớn 26 ... - Triển khai kiểu liệu - - Stack - - Mảng Danh sách liên kết Queue - - Danh sách liên kết đơn Danh sách liên kết vòng Danh sách liên kết kép Mảng Danh sách liên kết Chuẩn bị toán chuyển trung... Danh sách liên kết vịng • Thay phần tử đuôi đến null, danh sách liên kết vòng đến head;  Tạo vòng, phần tử vịng đầu  Các thao tác cần kiểm tra với trỏ head để biết kết thúc vịng  Phù hợp với. .. cấu trúc liệu tự trỏ  Danh sách liên kết đơn  Danh sách liên kết vịng  Danh sách liên kết đơi • Một số cấu trúc liệu  Cấu trúc liệu stack  Cấu trúc liệu queue 25 Bài tập - Triển khai kiểu

Ngày đăng: 07/05/2021, 13:32

TỪ KHÓA LIÊN QUAN

w