Danh sách liên kết đơn
Số trang: 88
Loại file: pdf
Dung lượng: 8.57 MB
Lượt xem: 21
Lượt tải: 0
Xem trước 9 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Hoán vị nội dung các phần tử trong danh sách• Cài đặt lại trên xâu một trong những thuật toán sắp xếp đã biết trên mảng • Điểm khác biệt duy nhất là cách thức truy xuất đến các phần tử trên xâu thông qua liên kết thay vì chỉ số như trên mảng.
Nội dung trích xuất từ tài liệu:
Danh sách liên kết đơnDanh sách liên kết đơnDSLK - định nghĩa DSLK đơn là chuỗi các node, được tổ chức theo thứ tự tuyến tính Mỗi node gồm 2 phần: phần: Phần Data, information : löu tröõ caùc thoâng tin veà baûn thaân phaàn töû . Phần link hay con trỏ : löu tröõ ñòa chæ cuûa phaàn töû keá tieáp trong danh saùch, hoaëc löu tröõ giaù trò NULL neáu laø phaàn töû cuoái danh saùch. saùch. Data Link Node 2Cấu trúc dữ liệu của DSLK đơntypedef struct Node { int data; // Data là kiểu đã định nghĩa trước Node * link; //con trỏ chỉ đến cấu trúc NODE }; 3 Lưu trữ DSLK đơn trong RAM Địa chỉ 000 Ví dụ : Ta có danh sách theo dạng bảng sau Joe 100 140 Address ddress Name Age ge Link Bill 110 10 Joe 20 140 500 10 Bill ill 42 50 Marta 140 NULL 140 Marta 27 10 Sahra 230 230 Sahra ahra 25 NULL 140 … … … Kock 500 50 Koch 31 230 230 … 4 DSLK đơn truy xuất – Minh họa Địa chỉ VD:first 100 140 100 ‘Joe’ 140 ‘Marta’ 110 110 500 ‘Bill’ 500 ‘Koch’ 230 230 ‘Bill’ NULL 5Tổ chức, quản lý Để quản lý một xâu đơn chỉ cần biết địa chỉ phần tử đầu xâu. Con trỏ First sẽ được dùng để lưu trữ địa chỉ phần tử đầu xâu, ta gọi First là đầu xâu. Ta có khai báo : NODE* first; Để tiện lợi, có thể sử dụng thêm một con trỏ last giữ địa chỉ phần tử cuối xâu. Khai báo last như sau : NODE* last; last first A B X Z Y 6DSLK – Khai báo phần Data typedef struct node { Cấu trúc DataType data; nodeDataType ? struct node * link; }NODE; typedef struct node typedef struct node { { int data; SinhVien data; struct node * link; struct node * link; }NODE; }NODE; 7Tổ chức, quản lýKhai báo kiểu của 1 phần tử và kiểu danh sách liên kết đơn và đểđơn giản ta xét mỗi node gồm vùng chứa dữ liệu là kiểu số nguyên : //kiểu của một phần tử trong danh sách typedef struct Node { int data; NODE * link; }NODE; typedef struct List // kiểu danh sách liên kết { NODE* first; NODE* last; }LIST; Trong thực tế biến data là một kiểu struct 8 Tạo một phần tử Thủ tục GetNode để tạo ra một phần tử cho danh sách với thông tin chứa trong x NODE* GetNode(int x) { NODE *p; // Cấp phát vùng nhớ cho phần tử p = (NODE*)malloc(sizeof(NODE))//p= new NODE; if (p==NULL) { coutlink = NULL; return p; } 9 Tạo một phần tửĐể tạo một phần tử mới cho danh sách, cần thực hiện câulệnh: new_ele = GetNode(x); new_ele sẽ quản lý địa chỉ của phần tử mới được tạo. 10Các thao tác cơ sở Tạo danh sách rỗng Thêm một phần tử vào danh sách Tìm kiếm một giá trị trên danh sách Trích một phần tử ra khỏi danh sách Duyệt ...
Nội dung trích xuất từ tài liệu:
Danh sách liên kết đơnDanh sách liên kết đơnDSLK - định nghĩa DSLK đơn là chuỗi các node, được tổ chức theo thứ tự tuyến tính Mỗi node gồm 2 phần: phần: Phần Data, information : löu tröõ caùc thoâng tin veà baûn thaân phaàn töû . Phần link hay con trỏ : löu tröõ ñòa chæ cuûa phaàn töû keá tieáp trong danh saùch, hoaëc löu tröõ giaù trò NULL neáu laø phaàn töû cuoái danh saùch. saùch. Data Link Node 2Cấu trúc dữ liệu của DSLK đơntypedef struct Node { int data; // Data là kiểu đã định nghĩa trước Node * link; //con trỏ chỉ đến cấu trúc NODE }; 3 Lưu trữ DSLK đơn trong RAM Địa chỉ 000 Ví dụ : Ta có danh sách theo dạng bảng sau Joe 100 140 Address ddress Name Age ge Link Bill 110 10 Joe 20 140 500 10 Bill ill 42 50 Marta 140 NULL 140 Marta 27 10 Sahra 230 230 Sahra ahra 25 NULL 140 … … … Kock 500 50 Koch 31 230 230 … 4 DSLK đơn truy xuất – Minh họa Địa chỉ VD:first 100 140 100 ‘Joe’ 140 ‘Marta’ 110 110 500 ‘Bill’ 500 ‘Koch’ 230 230 ‘Bill’ NULL 5Tổ chức, quản lý Để quản lý một xâu đơn chỉ cần biết địa chỉ phần tử đầu xâu. Con trỏ First sẽ được dùng để lưu trữ địa chỉ phần tử đầu xâu, ta gọi First là đầu xâu. Ta có khai báo : NODE* first; Để tiện lợi, có thể sử dụng thêm một con trỏ last giữ địa chỉ phần tử cuối xâu. Khai báo last như sau : NODE* last; last first A B X Z Y 6DSLK – Khai báo phần Data typedef struct node { Cấu trúc DataType data; nodeDataType ? struct node * link; }NODE; typedef struct node typedef struct node { { int data; SinhVien data; struct node * link; struct node * link; }NODE; }NODE; 7Tổ chức, quản lýKhai báo kiểu của 1 phần tử và kiểu danh sách liên kết đơn và đểđơn giản ta xét mỗi node gồm vùng chứa dữ liệu là kiểu số nguyên : //kiểu của một phần tử trong danh sách typedef struct Node { int data; NODE * link; }NODE; typedef struct List // kiểu danh sách liên kết { NODE* first; NODE* last; }LIST; Trong thực tế biến data là một kiểu struct 8 Tạo một phần tử Thủ tục GetNode để tạo ra một phần tử cho danh sách với thông tin chứa trong x NODE* GetNode(int x) { NODE *p; // Cấp phát vùng nhớ cho phần tử p = (NODE*)malloc(sizeof(NODE))//p= new NODE; if (p==NULL) { coutlink = NULL; return p; } 9 Tạo một phần tửĐể tạo một phần tử mới cho danh sách, cần thực hiện câulệnh: new_ele = GetNode(x); new_ele sẽ quản lý địa chỉ của phần tử mới được tạo. 10Các thao tác cơ sở Tạo danh sách rỗng Thêm một phần tử vào danh sách Tìm kiếm một giá trị trên danh sách Trích một phần tử ra khỏi danh sách Duyệt ...
Tìm kiếm theo từ khóa liên quan:
Danh sách liên kết đơn Bài giảng Danh sách liên kết đơn Tài liệu Danh sách liên kết đơn lập trình cơ bản tổng quan lập trình lập trình đối tượngTài liệu có liên quan:
-
Giới thiệu : Lập trình mã nguồn mở
14 trang 189 0 0 -
Giáo trình nhập môn lập trình - Phần 22
48 trang 143 0 0 -
Đề thi HK lần 2 môn Lập trình cơ bản năm 2016 - CĐ Kỹ Thuật Cao Thắng - Đề 2
6 trang 94 0 0 -
Hướng dẫn thực hành - Lập trình Windows 1
63 trang 78 0 0 -
Bài tập mẫu về Mô hình hóa chức năng với Biểu đồ Luồng dữ liệu (DFD)
23 trang 69 0 0 -
NGÔN NGỮ LẬP TRÌNH C - Mảng và chuỗi ký tự
40 trang 51 0 0 -
Bài giảng Lập trình cơ bản: Bài 6 - Chu Thị Hường
38 trang 39 0 0 -
Quản lý dự án công nghệ thông tin - ĐH Công nghệ Thông tin
170 trang 35 0 0 -
6 trang 33 0 0
-
Phương pháp lập trình đối hướng đối tượng - Kế thừa
49 trang 31 0 0