CẤU TRÚC DỮ LIỆU (ĐH HÀNG HẢI)

80 195 0
CẤU TRÚC DỮ LIỆU (ĐH HÀNG HẢI)

Đ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

Học phần Cấu trúc dữ liệu nhằm cung cấp kiến thức và rèn luyện kỹ năng thực hành cấu trúc dữ liệu cho sinh viên. Kết cấu của bài giảng gồm có 4 chương: Chương I : Khái niệm liên quan đến CTDL. Chương II : Các kiểu dữ liệu trừu tượng cơ bản. Chương III: Cây (tree). Chương IV: Bảng băm (hash table).

 TR :         BÀI   :   : 17207 TRÌNH :  DÙNG CHO SV NGÀNH :  - 2008 i   1  1  1  2  3  6 2. 1. - Stack 6 2.1.1  6 2.1.2  6 2.1.3  7 2.1.4  7 2.1.5  10 2.2. - Queue 12 2.2.1  12 2.2.2  13 2.2.3  13 2.2.4  16 2.2.5        16 2.3.    Linked list 17 2.3.1      17 2.3.2     . 17 2.3.3  18 2.3.4  25 2.3.5                26 2.3.6.  26  26  28 3.1.     28 3.1.1. (Graph) 28 3.1.2. Cây (tree) 29 3.3.     (Binary Search Tree - BST) 31 3.3.1.      31 3.3.2.        32 3.3.3.  32 3.3.4.  33 3.3.5.  34 3.3.6.    35 3.3.7.  36  AVL 39  54  54  54  55  55 4.1.4.Các phép  57  57  57  58 ii  61 4.3.1.  61 - ) : 61  61 4.3.4.  71  : 72  72  75 iii    2   CNTT  : 3       60 30 30 0 0 0       -  -  -  -  -  -     TS LT TH/Xemina BT KT Ch 2 2 0  liên quan.     12 6 6 2.1. Danh sách  2.1.2. Các phép toán trên danh sách        2.3. Hàng       18 9 8 1   iv   TS LT TH/Xemina BT KT      3.3.2. L         3.5.2. Cây AVL  (hash table) 14 7 6 1 4 4 4 4 4     Cấu trúc dữ liệu và thuật toán,  2004. Cấu trúc dữ liệu và giải thuật, Nhà  3. Robert Sedgewick, Cẩm nang thuật toán  -  -       : / /20  1 CH       ình toán.                       au.            các    trong      2    -   -   mô hình thích hợp thức hoá một giải thuật, một cấu trúc dữ liệu        kiểu dữ liệu    Newclr    void GREEDY ( GRAPH *G, SET *Newclr ) { Newclr = ; /*1*/   {  thêm v vào Newclr; /*5*/ } }   i báo thích   if   void GREEDY ( GRAPH *G, SET *Newclr ) { Newclr= ; /*1*/  { int found=0; /*3.1*/   found=1; /*3.4*/ if (found==0)/*3.5*/ {  thêm v vào Newclr; /*5*/ } 3 } }      void GREEDY ( GRAPH *G, LIST *Newclr ) { int found; int v,w ; Newclr= ;  trong G; while (v<>null) { found=0;  while( w<>null) && (found=0) {  found=1;  } if (found==0 ) {  Thêm v vào Newclr; }  } }  ng hóa    ng hóa chng trình                    ph    bao gói.  là: void main() { Nhap(Lop); 4 Xu_ly (Lop); Xuat (Lop); }     cà   Một kiểu dữ liệu trừu tng là một mô hình toán học cùng với một tập hợp các phép toán (operator) trừu tng c định nghĩa trên mô hình đó.   nguyên cùng      ADT là sự tổng quát hoá của các kiểu dữ liệu nguyên thỷ.  án trên danh sách newclr là: -  -  -   - h.     MAKENULL(newclr) newclr=; w=FIRST(newclr) newclr w=NEXT(w,newclr)  INSERT( v,newclr) Thêm v vào newclr                                      -        5                      -             1.   2.    1.  2.   [...]... danh sách liên kế t chƣ́a các đỉnh liền kề của một đỉnh của đồ thị 2.3.6 Cài đặt stack và queue bằ ng con trỏ Về bản chấ t , các cấu trúc dữ liệu stack và queue là các cấu trúc danh sách liên kết hạn chế , các thao tác đƣợc giới hạn so với cấu trúc danh sách liên kết Vì thế có thể coi một stack hay queue là mô ̣t danh sách liên kế t, và có thể lợi dụng cài đặt bằng con trỏ... cây tim kiế m nhi ̣phân là : nó cung cấ p thuâ ̣t toán sắ p xế p và tim ́ ̀ ̀ kiế m dƣ̣a trên kiể u duyê ̣t thƣ́ tƣ̣ giƣ̃a (in-order) mô ̣t cách rấ t hiê ̣u quả, và là cấu trúc dữ liệu cơ bản cho các cấu trúc dữ liệu cao cấp hơn (trƣ̀ u tƣơ ̣ng hơn) nhƣ tâ ̣p hơ ̣p (set), các mảng liên kế t 31 ... toán 2.2 Hàng đợi - Queue 2.2.1 Khái niệm Hàng đợi là một tập hợp các phần tử cùng kiểu đƣợc tổ chức một cách tuần tự (tuyế n tính) trong đó phầ n tƣ̉ đƣơ ̣c thêm vào đầ u tiên sẽ là phầ n tƣ̉ đƣơ ̣c loa ̣i bỏ đầ u tiên khỏi hàng đơ ̣i Các hàng đợi thƣờng đƣợc gọi là các cấu trúc FIFO (First In First Out) Các ví dụ thực tế về hàng đợi mà chúng ta có thể thấy trong cuộc sống hàng ngày... Ứng dụng của hàng đợi Trong các hê ̣ điề u hành:    Hàng đợi các công việc hoặc các tiến trình đang đợi để đƣợc thực hiện Hàng đợi các tiến trình chờ các tín hiệu từ các thiết bị IO Các file đƣơ ̣c gƣ̉i tới máy in Mô phỏng các hê ̣ thố ng hàng đơ ̣i thời trong thƣ̣c tế     Các khách hàng trong các cửa hàng tạp hóa, trong các hê ̣ thố ng ngân hàng Các đơn đặt hàng của... vào vi ̣trí ở cuố i hàng đơị pop(): loại bỏ phần tử ở đầu hàng đợi front(): trả về giá trị phần tử ở đầu hàng đợi back(): trả về giá trị phần tử ở cuối hàng đợi size(): trả về số phần tử đang ở trong hàng đợi empty(): kiể m tra hàng đơ ̣i có rỗng hay không full(): kiể m tra hàng đơ ̣i đầ y (chỉ cần khi cài đặt hàng đợi bằng mảng) Ví dụ: Thao tác Khởi ta ̣o push(7) push(8)... cây T1, , Tk đƣợc gọi là các cây con Tập rỗng cũng đƣợc coi là một cây và gọi là cây rỗng kí hiệu Ví dụ: Xét mục lục của một quyển sách Mục lục này có thể xem là một cây Xét cấu trúc thƣ mục trong tin học, cấu trúc này Sách cũng đƣợc xem nhƣ một cây C1 1.1 C2 1.2 2.1 2.1.1 C3 2.2 3.2 2.1.2 Hình III.1 - Cây mục lục một quyển sách Nếu n1, , nk là một chƣỗi các nút trên cây sao cho ni là nút... cụ thể cài đặt một danh sách liên kết bằng mảng nhƣ thế nào nhƣng cũng không quá khó để hình dung cách thức hoạt động của các danh sách kiểu nhƣ thế Kết luận: Danh sách liên kết là các cấu trúc dữ liệu rất giống với các mảng Các thao tác chính thƣờng đƣợc sử dụng đối với một danh sách liên kết là thêm, xóa và tìm kiếm trên danh sách Thao tác chèn và xóa có thể thực hiện với thời gian...CHƢƠNG 2 CÁC KIỂU DỮ LIỆU TRỪU TƢỢNG CƠ BẢN 2 1 Ngăn xế p - Stack 2.1.1 Khái niệm Khái niệm: Ngăn xế p (stack) là một tập hợp các phần tử (items) cùng kiểu đƣợc tổ chƣ́c mô ̣t cách tuầ n tƣ̣ (chính vì thế một số tài liệu còn định nghĩa ngăn xếp là một danh sách tuyế n tinh các phầ n tƣ̉ với các thao tác... công viê ̣c cầ n làm của mô ̣t ngƣời … 12 Cũng có thể định nghĩa hàng đợi là một danh sách tuyến tính các phần tử giống nhau với mô ̣t số thao tác ha ̣n chế tới các phầ n tƣ̉ trên danh sách đó 2.2.2 Các thao tác cơ bản của một hàng đơ ̣i Tƣơng tƣ̣ nhƣ cấ u trúc ngăn xế p , chúng ta định nghĩa các thao tác trên hàng đợi tuân theo cài đă ̣t chuẩ n của hàng đơ ̣i trong thƣ viê... số của phầ n tƣ̉ ở đỉnh stack Ngăn xế p rỗng khi top_idx = -1 và đầy khi top_idx = n-1 trong đó n là kích thƣớc của mảng Khi thƣ̣c hiê ̣n thao tác push chúng ta tăng top_idx lên 1 và ghi dữ liệu vào vị trí tƣơng ứng của mảng Khi thƣ̣c hiê ̣n thao tác pop chúng ta chỉ viê ̣c giảm chỉ số top_idx đi 1 Ví dụ về ngăn xếp cài đặt bằng mảng: Giả sử chúng ta sử dụng mảng E[0 4] . da cua queue la 100 // khai bao queue chua cac so nguyen typedef struct { int * data; // khai bao mang dong int head; int tail; int cap; // luu so phan tu cua hang doi } queue; //. MAX_ELEMENT = 100; // so phan tu toi da cua stack la 100 // khai bao stack chua cac so nguyen typedef struct { int * data; // khai bao mang dong int top_idx; } stack; // ham khoi tao stack. q->tail = (q->tail + 1) % MAX_ELEMENT; q->data[q->tail] = d; if(q->cap==0) // neu hang doi rong thi sau khi push // ca head va tail deu chi vao 1 phan tu q->head = q->tail;

Ngày đăng: 09/04/2015, 21:02

Từ khóa liên quan

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

Tài liệu liên quan