![](images/graphics/blank.gif)
Bài giảng Cấu trúc dữ liệu: Chương 3 - Nguyễn Xuân Vinh
lượt xem 6
download
![](https://tailieu.vn/static/b2013az/templates/version1/default/images/down16x21.png)
Bài giảng Cấu trúc dữ liệu - Chương 3: Mảng (Arrays) trình bày về khái niệm mảng, tính chất của mảng, tạo mảng, giá trị mặc định của mảng, quản lí bộ nhớ mảng, mảng dữ liệu nguyên thủy,...Mời bạn đọc cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu: Chương 3 - Nguyễn Xuân Vinh
- GV: NGUYỄN XUÂN VINH CẤU TRÚC DỮ LIỆU DATA STRUCTURES [214331] MẢNG MÔN: CẤU TRÚC DỮ LIỆU (Arrays) Nguyễn Xuân Vinh nguyenxuanvinh@hcmuaf.e 6/12/14 du.vn /17 1
- GV: NGUYỄN XUÂN VINH Mảng (Arrays) q Collection duy nhất được hỗ trợ sẵn trong ngôn ngữ lập trình Java. q Dùng để lưu trữ một tập các phần tử theo thứ tự và có thể được truy xuất thông qua chỉ mục index. Là lớp con của Object và hiện thực cả 2 interface Serializable và MÔN: CẤU TRÚC DỮ LIỆU q Cloneable. • Không có .java source file để xem cách thức làm việc bên trong của 1 mảng như thế nào. • Khi tạo ra 1 mảng cần chỉ định kích thước và kiểu dữ liệu, sau đó có thể đưa các phần tử có cùng kiểu đã định sẵn vào trong mảng cho tới khi mảng đầy. 6/12/14 /17 2
- GV: NGUYỄN XUÂN VINH Tính chất của mảng (Arrays) • Ưu điểm: – Truy xuất nhanh. – Sử dụng đơn giản. • Nhược điểm: MÔN: CẤU TRÚC DỮ LIỆU – Phải chỉ định một kích thước cụ thể tại thời điểm xây dựng mảng. – Tuân thủ luật đầy. – Việc bố trị lại khá phức tạp. 6/12/14 /17 3
- GV: NGUYỄN XUÂN VINH Tạo mảng (arrays) Có bao nhiêu cách • Bước 1: Khai báo mảng (Declaration) đặt dấu []? String[] names; • Bước 2: Khởi tạo mảng (Initialization) names = new String[3]; Bước 3: Gán giá trị (Assignment) MÔN: CẤU TRÚC DỮ LIỆU • names[0] = "Leonardo"; names[1] = "da"; names[2] = "Vinci"; • Cách tạo và gán trực tiếp: String names[] = new String[]{"Leonardo", "da", "Vinci"}; String names[] = {"Leonardo", "da", "Vinci"}; 6/12/14 String names[] = new String[3]{"Leonardo", "da", "Vinci"}; ??? /17 • Các phần tử trong mảng có thể là: 4 –
- 5 /17 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giá trị mặc định của mảng
- 6 /17 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Allocation) Quản lý bộ nhớ mảng (Array Memory
- GV: NGUYỄN XUÂN VINH Mảng dữ liệu nguyên thủy (Primitive data type) Mảng chứa giá trị thực sự MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 /17 7
- GV: NGUYỄN XUÂN VINH Mảng đối tượng (Reference data type) Mảng chỉ chứa các tham chiếu (references) tới đối tượng thật sự MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 /17 8
- GV: NGUYỄN XUÂN VINH Mảng đa chiều • Khi mỗi phần tử của 1 mảng trỏ tới 1 mảng khác, ta có mảng đa chiều (multidimensional array). • Khai báo (declaration) int A[][]; • Khởi tạo (Initialization) MÔN: CẤU TRÚC DỮ LIỆU A = new int[3][4]; • Gán giá trị (Assignment) A[0][0] = 1; • Truy vấn mảng (Query) int x = A[1][3]; Ł x = ? 6/12/14 /17 9
- GV: NGUYỄN XUÂN VINH Các phép toán trên mảng 1) Duyệt mảng 2) Copy và clone mảng 3) Phép gán mảng 4) Kiểm tra 2 mảng bằng nhau MÔN: CẤU TRÚC DỮ LIỆU 5) Thêm phần tử vào mảng 6/12/14 /17 10
- GV: NGUYỄN XUÂN VINH 1) Duyệt mảng int[] arrays = new int[4]; arrays[0] = 0; arrays[1] = 1; arrays[2] = 2; arrays[3] = 3; MÔN: CẤU TRÚC DỮ LIỆU Index of arrays // Cách 1 for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]); } 6/12/14 // Cách 2 /17 for (int i : arrays) { System.out.println(i); 11
- GV: NGUYỄN XUÂN VINH 2) Copying và Cloning mảng • Để sao chép các phần tử từ mảng này sang mảng khác ta dùng System.arraycopy(): int[] arrays = new int[10]; // Cách 1 MÔN: CẤU TRÚC DỮ LIỆU int[] clone1 = new int[10]; System.arraycopy(arrays, 0, clone1, 0, 10); // Cách 2 int[] clone2 = Arrays.copyOfRange(arrays, 0, 10); // Cách 3 int[] clone3 = new int[10]; for(int i=0; i
- GV: NGUYỄN XUÂN VINH 3) Phép gán mảng Button buttons[] = { new Button ("One"), new Button("Two"), new Button("Three") }; MÔN: CẤU TRÚC DỮ LIỆU Component components[] = buttons; 6/12/14 /17 13
- GV: NGUYỄN XUÂN VINH 4) Hai mảng bằng nhau • “==”: kiểm tra 2 mảng có cùng vị trí bộ nhớ (memory space) hay không. boolean b1 = (array == clone); MÔN: CẤU TRÚC DỮ LIỆU • “Arrays.equals()”: kiểm tra 2 mảng có bằng nhau theo nghĩa “tự nhiên” hay không. boolean b2 = Arrays.equals(array, clone); 6/12/14 /17 14
- GV: NGUYỄN XUÂN VINH 5) Thêm phần tử vào mảng int[] arrays = new int[4]; // Khi mảng chưa đầy arrays[0] = 0; arrays[1] = 1; arrays[2] = 2; MÔN: CẤU TRÚC DỮ LIỆU arrays[3] = 3; // Khi mảng đã đầy int[] newArrays = new int[5]; for(int i=0; i
- GV: NGUYỄN XUÂN VINH Tóm tắt • Mảng là gì? • Ưu và nhược điểm của mảng. • Tạo mảng. • Giá trị mặc định của mảng. MÔN: CẤU TRÚC DỮ LIỆU • Quản lý bộ nhớ của mảng trong JVM. (Memory Allocation). • Mảng đa chiều. • Các phép toán trên mảng: – Duyệt mảng – Copy & Clone – Assign Compare (= =) 6/12/14 – – Thêm phần tử vào mảng. /17 16
- 17 /17 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH HỎI ĐÁP
![](images/graphics/blank.gif)
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 3 - Nguyễn Đức Nghĩa
0 p |
503 |
166
-
Bài giảng Cấu trúc dữ liệu cơ bản và giải thuật - Chương 1
9 p |
269 |
29
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p |
186 |
17
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - Đỗ Bích Diệp
28 p |
127 |
10
-
Bài giảng Cấu trúc dữ liệu: Chương 10 - Nguyễn Xuân Vinh
31 p |
102 |
10
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p |
171 |
9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p |
92 |
9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p |
123 |
9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p |
100 |
8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p |
82 |
8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p |
69 |
7
-
Bài giảng Cấu trúc dữ liệu: Chương Giới thiệu - Nguyễn Xuân Vinh
8 p |
120 |
7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p |
101 |
6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p |
188 |
6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p |
114 |
4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 7 - Châu Thị Bảo Hà
133 p |
117 |
4
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu
10 p |
81 |
4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các khái niệm cơ bản
23 p |
55 |
3
![](images/icons/closefanbox.gif)
![](images/icons/closefanbox.gif)
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
![](https://tailieu.vn/static/b2013az/templates/version1/default/js/fancybox2/source/ajax_loader.gif)