Giáo trình cấu trúc dữ liệu 1

133 0 0
Giáo trình cấu trúc dữ liệu 1

Đ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

Giáo trình cấu trúc liệu Chương Tổng quan Chương 1: TỔNG QUAN VAI TRÒ CỦA CẤU TRÚC DỮ LIỆU TRONG MỘT ĐỀ ÁN TIN HỌC Thực đề án tin học chuyển toán thực tế thành tốn giải máy tính Một tốn thực tế bao gồm đối tượng liệu yêu cầu xử lý đối tượng Vì thế, để xây dựng mơ hình tin học phản ánh toán thực tế cần trọng đến hai vấn đề :  Tổ chức biểu diễn đối tượng thực tế : Các thành phần liệu thực tế đa dạng, phong phú thường chứa đựng quan hệ với nhau, mơ hình tin học tốn, cần phải tổ chức , xây dựng cấu trúc thích hợp cho vừa phản ánh xác liệu thực tế này, vừa dễ dàng dùng máy tính để xử lý Cơng việc gọi xây dựng cấu trúc liệu cho toán  Xây dựng thao tác xử lý liệu: Từ yêu cầu xử lý thực tế, cần tìm giải thuật tương ứng để xác định trình tự thao tác máy tính phải thi hành kết mong muốn, bước xây dựng giải thuật cho toán Tuy nhiên giải tốn máy tính, thường có khuynh hướng trọng đến việc xây dựng giải thuật mà quên tầm quan trọng việc tổ chức liệu toán Giải thuật phản ánh phép xử lý , đối tượng xử lý giải thuật lại liệu, liệu chứa đựng thông tin cần thiết để thực giải thuật Để xác định giải thuật phù hợp cần phải biết tác động đến loại liệu chọn lựa cấu trúc liệu cần phải hiểu rõ thao tác tác động đến Như đề án tin học, giải thuật cấu trúc liệu có mối quan hệ chặt chẽ với nhau, thể qua công thức: Cấu trúc liệu + Giải thuật = Chương trình Với cấu trúc liệu chọn, có giải thuật tương ứng, phù hợp Khi cấu trúc liệu thay đổi thường giải thuật phải thay đổi theo để tránh việc xử lý gượng ép, thiếu tự nhiên cấu trúc không phù hợp Hơn nữa, cấu trúc liệu tốt giúp giải thuật xử lý phát huy tác dụng tốt hơn, vừa đáp ứng nhanh vừa tiết kiệm vật tư, giải thuật dễ hiễu đơn giản CÁC TIÊU CHUẨN ĐÁNH GIÁ CẤU TRÚC DỮ LIỆU Một cấu trúc liệu tốt phải thỏa mãn tiêu chuẩn sau:  Phản ánh thực tế: Đây tiêu chuẩn quan trọng nhất, định tính đắn tồn tốn Cần xem xét kỹ lưỡng dự trù trạng thái biến đổi liệu chu trình sống để chọn cấu trúc liệu lưu trữ thể xác đối tượng thực tế  Phù hợp với thao tác đó: Tiêu chuẩn giúp tăng tính hiệu đề án: việc phát triển thuật toán đơn giản, tự nhiên hơn; chương trình đạt hiệu cao tốc độ xử lý  Tiết kiệm tài nguyên hệ thống: Cấu trúc liệu nên sử dụng tài nguyên hệ thống vừa đủ để đảm nhiệm chức nó.Thơng thường có loại tài ngun cần lưu tâm : CPU nhớ Tiêu chuẩn nên cân nhắc tùy vào tình cụ thể thực đề án Nếu tổ chức sử dụng đề án cần có Trang: Giáo trình cấu trúc liệu Chương Tổng quan xử lý nhanh chọn cấu trúc liệu yếu tố tiết kiệm thời gian xử lý phải đặt nặng tiêu chuẩn sử dụng tối ưu nhớ, ngược lại TRỪU TƯỢNG HỐ DỮ LIỆU Trừu tượng hố ý niệm vật hay tượng sau thu thập chắt lọc thơng tin có ý nghĩa; loại bỏ thông tin không cần thiết chi tiết không quan trọng Thông tin bao gồm trạng thái tĩnh(data) tác vụ(operation) lên liệu Sự trừu tượng hố bao hàm trừu tượng hố liệu để thu thập thơng tin liệu trừu tượng hoá tác vụ để thu tập tác vụ liên quan Kết trình trừu tượng hố giúp xây dựng mơ hình cho kiểu liệu gọi kiểu liệu trừu tượng(Abstract Data Type - ADT), kiểu liệu trừu tượng có mơ tả liệu tác vụ liên quan Ví dụ: mơ tả kiểu liệu trừu tượng số hữu tỉ a/b với tác vụ cộng hai số hữu tỉ, nhân hai số hữu tỉ, chia hai số hữu tỉ KIỂU DỮ LIỆU TRỪU TƯỢNG VỀ SỐ HỮU TỈ Mô tả liệu:  Tử số  Mẫu số (mẫu số phải khác 0) Mô tả tác vụ:  Tác vụ cộng: add(sốhữutỉ1, sốhữutỉ2) Nhập: a,b tử mẫu sốhữutỉ1 c,d tử mẫu sốhữutỉ2 Xuất: ad+bc tử số hữu tỉ kết bd mẫu số hữu tỉ kết  Tác vụ nhân: mul(sốhữutỉ1,sốhữutỉ2) Nhập: … Xuất: … … KIỂU DỮ LIỆU CƠ BẢN Các loại liệu thường loại liệu đơn giản, khơng có cấu trúc Chúng thường giá trị vô hướng số nguyên, số thực, ký tự, giá trị logic Các loại liệu này, tính thơng dụng đơn giản mình, thường ngơn ngữ lập trình (NNLT) cấp cao xây dựng sẵn thành phần ngôn ngữ để giảm nhẹ cơng việc cho người lập trình Chính đơi người ta gọi chúng kiểu liệu định sẵn Thông thường, kiểu liệu bao gồm : Kiểu có thứ tự rời rạc: số nguyên, ký tự, logic , liệt kê, miền … Kiểu không rời rạc: số thực Các kiểu liệu định sẵn C gồm kiểu sau: Tên kiểu Kthước Miền giá trị Ghi char 01 byte -128 đến 127 Có thể dùng số nguyên Trang: Giáo trình cấu trúc liệu unsign char int unsign int long unsign long float 01 byte 02 byte 02 byte 04 byte 04 byte 04 byte Chương Tổng quan đến 255 -32738 đến 32767 đến 65335 -232 đến 231 -1 đến 232-1 3.4E-38  3.4E38 byte có dấu kiểu ký tự Số ngun byte khơng dấu Có thể gọi tắt unsign Giới hạn trị tuyệt đối.Các giá trị nodes[pos]=x; plist->numnodes++; } } } Hình vẽ sau miêu tả trình thêm phần tử vào danh sách kề: Trang:5 Giáo trình cấu trúc liệu thuật giải Chương 2: Danh Sách Tác vụ xoá phần tử khỏi danh sách int remove(struct list *plist, int pos){ int i; int x; if(pos =listsize(plist)) printf("\n Vi tri xoa khong phu hop"); else{ if(empty(plist)){ printf("\n Danh sach khong co sinh vien"); } else{ x=plist->nodes[pos]; for(i=pos;inodes[i]=plist->nodes[i+1]; } plist->numnodes ; return x; } } return x; } Tác vụ thay phần tử danh sách void replace(struct list *plist, int pos, int x){ if(pos=listsize(plist)){ printf("\n Vi tri hieu chinh khong dung"); return; }else{ if(empty(plist)){ printf("\n Danh sach khong co sinh vien"); return; Trang:6 Tai lieu Luan van Luan an Do an 90 85 Đúng ->đổi chổ 85 90 90 35 Đúng ->đổi chổ 35 90 Nếu dùng phương pháp bubble sort để xếp danh sách có n nút:  Sau lần duyệt thứ 1, nút lớn định vị chổ  Sau lần duyệt thứ 2, nút thứ định vị chổ  Sau lần duyệt thứ n-1 n nút danh sách xếp thứ tự Sự biến đổi danh sách qua lần duyệt mô tả bảng lần duyệt Dữ liệu Ban đầu 25 55 45 40 10 90 85 25 45 40 10 55 85 35 25 40 10 45 55 35 85 25 10 40 45 35 55 85 10 25 40 35 45 55 85 10 25 35 40 45 55 85 10 25 35 40 45 55 85 10 25 35 40 45 55 85 35 90 90 90 90 90 90 90 2.1.2 Cài đặt giải thuật bubble sort void bubblesort(int nodes[], int n){ int temp, i,j; int doicho=TRUE; for(i=1; i

Ngày đăng: 07/07/2023, 00:48

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

  • Đang cập nhật ...

Tài liệu liên quan