1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++ pdf

5 1,3K 15
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Các Thao Tác Trên Danh Sách Liên Kết Đơn C++
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài tập
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 5
Dung lượng 161,26 KB

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

Nội dung

Tìm phần tử có giá trị max / min SV tự vẽ hình minh họa... Tìm phần tử có giá trị thỏa điều kiện xuất hiện đầu tiên Giả sử phần tử có giá trị chẵn xuất hiện đầu tiên trên danh sách số

Trang 1

CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++

struct tNODE

{

< KIỄU DỮ LIỆU DANH SÁCH> Key;

struct tNODE *pNext;

};

typedef struct tNODE NODE;

struct tList

{

NODE *pHead, *pTail;

};

typedef struct tList LIST;

***yêu cầu:

1 Tìm kiếm

2 Duyệt

3 Đếm

4 Kiểm tra

5 Thêm

6 Xóa

7 Sắp xếp

1 Tìm kiếm

1.1 Tìm phần tử có giá trị x

(SV tự vẽ hình minh họa)

Trang 2

Đầu vào: DSLK đơn l, giá trị x

- Kết quả: Trả về con trỏ tìm được (hoặc NULL: Nếu không có x)

- Giải thuật:

B1: p trỏ vào đầu danh sách

B2: Nếu p = NULL thì trả về NULL Kết thúc

Ngược lại sang B3

B3: Nếu giá trị p = x thì trả về p Kết thúc

B4: p trỏ đến phần tử kế tiếp, quay lại B2

- Cài đặt (Giả sử tìm phần tử có giá trị x trên danh sách số nguyên):

NODE *TimX(LIST l, int x)

{

NODE *p=l.pHead;

while(p)

{

if(p->Key==x)

return p;

p=p->pNext;

}

return NULL;

}

1.2 Tìm phần tử có giá trị max / min

(SV tự vẽ hình minh họa)

Trang 3

Đầu vào: DSLK đơn l

- Kết quả: Trả về con trỏ max tìm được

- Giải thuật:

B1: pMax trỏ vào đầu danh sách

p trỏ vào sau pMax

B2: Nếu p = NULL thì trả về pMax Kết thúc

Trang

3

GV: Trần Minh Thái

Ngược lại sang B3

B3: Nếu giá trị p > giá trị pMax thì gán pMax = p

B4: p trỏ đến phần tử kế tiếp quay lại B2

- Cài đặt (Giả sử tìm max trên danh sách số nguyên):

NODE *TimMax(LIST l)

{

NODE *pMax=l.pHead, *p=pMax->pNext;

while(p)

{

if(p->Key>pMax->Key)

pMax = p;

p=p->pNext;

}

Trang 4

return pMax;

}

1.3 Tìm phần tử có giá trị thỏa điều kiện xuất hiện đầu tiên

(Giả sử phần tử có giá trị chẵn xuất hiện đầu tiên trên danh sách số nguyên)

(SV tự vẽ hình minh họa)

- Đầu vào: DSLK đơn l

- Kết quả: Trả về con trỏ chứa giá trị chẵn đầu tiên tìm được (hoặc

NULL: Nếu

không có chẵn)

- Giải thuật:

B1: p trỏ vào đầu danh sách

B2: Nếu p = NULL thì trả về NULL Kết thúc

Ngược lại sang B3

B3: Nếu giá trị p là chẵn thì trả về p Kết thúc

B4: p trỏ đến phần tử kế tiếp, quay lại B2

-Cài đặt:

NODE *TimChanDau(LIST l)

{

NODE *p=l.pHead;

while(p)

{

Trang 5

if(p->Key%2==0)

return p;

p=p->pNext;

}

return NULL;

}

1.4 Tìm phần tử có giá trị thỏa điều kiện xuất hiện cuối cùng

(Giả sử phần tử có giá trị chẵn xuất hiện cuối cùng trên danh sách số nguyên)

(SV tự vẽ hình minh họa)

Đầu vào: DSLK đơn l

- Kết quả: Trả về con trỏ chứa giá trị chẵn xuất hiện cuối cùng (hoặc

NULL: Nếu

không có chẵn)

- Giải thuật:

B1: p trỏ vào đầu danh sách

pChanCuoi=NULL;

B2: Nếu p = NULL thì trả về pChanCuoi Kết thúc

Ngược lại sang B3

B3: Nếu giá trị p là chẵn thì gán pChanCuoi = p

B4: p trỏ đến phần tử kế tiếp, quay lại B2

Ngày đăng: 28/07/2014, 17:22

TỪ KHÓA LIÊN QUAN

w