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

Chương 3: CẤU TRÚC DỮ LIỆU doc

10 199 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 1,42 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập 1 Chương 3: CẤU TRÚC DỮ LIỆU ðỘNG Khoa CNTT Trường Cð CNTT TP.HCM © Dương Thành Phết-www.thayphet.netThis is trial version www.adultpdf.com... Kiểu Dữ Liệu Con Trỏ © Dương Thành

Trang 1

3.1 Kiểu dữ liệu con trỏ 3.2 Danh sách liên kết (link list) 3.3 Danh sách liên kết ñơn

3.4 Sắp xếp danh sách 3.5 Các cấu trúc ñặc biệt của danh sách liên kết ñơn

3.5.1 Stack

3.5.2 Hàng ñợi (Queue)

3.6 Bài tập

1

Chương 3:

CẤU TRÚC DỮ LIỆU ðỘNG

Khoa CNTT Trường Cð CNTT TP.HCM

© Dương Thành Phết-www.thayphet.netThis is trial version

www.adultpdf.com

Trang 2

3.1 Kiểu Dữ Liệu Con Trỏ

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

3.1.1 Biến không ñộng

3.1.2 Kiểu con trỏ

3.1.3 Biến ñộng

This is trial version www.adultpdf.com

Trang 3

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

Dùng ñề lưu trữ những ñối tượng dữ liệu ñược sử dụng không có nhu cầu thay ñổi và kích thước, số lượng

• ðược khai báo tường minh

• Tồn tại trong phạm vi khái báo

• Kích thước không thay ñổi trong suốt quá trình sống

Ví dụ:

int a;

char b[10];

3.1.1 Biến không ñộng

This is trial version www.adultpdf.com

Trang 4

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

Kiểu con trỏ là kiểu cơ sở dùng lưu ñịa chỉ của một ñối tượng dữ liệu khác

Biến thuộc kiểu con trỏ là biến mà giá trị của nó là ñịa chỉ một vùng nhớ của một biến hoặc là giá trị Null Tùy vào loại con trỏ gần (near pointer) hay con trỏ xa (far pointer) mà kiểu dữ liệu con trỏ có các kích thước khác nhau:

+ Con trỏ gần: 2 bytes + Con trỏ xa: 4 bytes

3.1.2 Kiểu con trỏ

This is trial version www.adultpdf.com

Trang 5

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

Cú pháp ñịnh nghĩa một kiểu con trỏ

typedef <kiểu con trò> *<kiểu cơ sở>;

Ví dụ:

typedef int *intpointer;

inpointer p;

Các thao tác:

- Khi 1 biến con trỏ p lưu ñịa chỉ của ñối tượng x, ta

nói “p trỏ x”

- Gán ñịa chỉ của biến cho con trỏ p:

p=&<tên biến>

-Truy xuất nội dung của ñối tượng do p trỏ ñến

*p

This is trial version www.adultpdf.com

Trang 6

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

c Ví dụ:

void main()

{

int a,b,*pa,*pb;

a=2;

b=3;

cout<<"\nGia tri cua bien a="<<a;

cout<<"\nGia tri cua bien b="<<b;

pa=&a;

pb=&b;

cout<<"\nDia chi cua o nho con tro pa tro toi="<<pa;

cout<<"\nDia chi cua o nho con tro pb tro toi="<<pb;

cout<<"\nNoi dung cua o nho con tro pa tro toi="<<*pa;

cout<<"\nNoi dung cua o nho con tro pb tro toi="<<*pb;

*pa=20; /* Thay doi giá tr cua *pa*/

*pb=20; /* Thay doi giá tri cua *pb*/

cout<<"\nGia tri moi cua bien a="<<a;

cout<<"\nGia tri moi cua bien b="<<b;

}

This is trial version www.adultpdf.com

Trang 7

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

Trong trường hợp, tại thời ñiểm biên dịch không thể xác ñịnh trước kích thước chính xác của ñối tượng dữ liệu(do chúng phụ thuộc vào ngữ cảnh) Các ñối tượng

dữ liệu này ñược khai báo như biến ñộng

Biến ñộng là những biến thỏa:

3.1.3 Biến ñộng

 Không ñược khai báo tường minh

 ðược cấp phát/giải phóng bộ nhớ khi yêu cầu

 Các biến này không theo qui tắc phạm vi

 Vùng nhớ của biến ñược cấp phát trong Heap

 Kích thước thay ñổi trong quá trình sống

This is trial version www.adultpdf.com

Trang 8

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

Các thao tác trên biến ñộng:

Tạo biến ñộng và cho con trỏ p trỏ ñến:

Các hàm cấp phát bộ nhớ:

void* malloc(size); // trả về con trỏ chỉ ñến một vùng

// nhớ size byte vừa ñược cấp phát

void* calloc(n,size);// trả về con trỏ chỉ ñến một vùng

// nhớ vừa ñược cấp phát gồm n

//phần tử,mỗi phần tử có kích

//thước size byte

This is trial version www.adultpdf.com

Trang 9

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

Hủy một biến ñộng do p chỉ ñến:

Hàm free(p): Huỷ vùng nhớ cấp phát bởi hàm malloc do p trỏ tới

Hàm delete p: huỷ vùng nhớ cấp phát bởi hàm new do p trỏ tới

This is trial version www.adultpdf.com

Trang 10

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

Ví dụ:

//Cấp phát vùng nhớ cho 1 biến ñộng kiểu int p1 = (int*)malloc(sizeof(int));

//ðặt giá trị 5 cho biến ñộng p1 p1* = 5;

//Cấp phát biến ñộng kiểu mảng 10 p.tử kiểu int p2 = (int*)calloc(10, sizeof(int));

//ðặt giá trị 0 cho phần tử thứ 4 của mảng p2 (p2+3)* = 0;

free(p1);

free(p2);

This is trial version www.adultpdf.com

Ngày đăng: 13/08/2014, 23:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w