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++ ppt

5 813 3
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

Định dạng
Số trang 5
Dung lượng 131,85 KB

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

Nội dung

CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++ 5.. Thêm phần tử vào đầu danh sách SV tự vẽ hình minh họa ..... Thêm phần tử vào cuối danh sách SV tự vẽ hình minh họa ..... Thêm phần t

Trang 1

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

5 Thêm

5.1 Thêm phần tử vào đầu danh sách

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

- Đầu vào: DSLK đơn l, phần tử p cần thêm

- Kết quả: DSLK đơn l sau khi thêm

- Giải thuật:

*Trường hợp 1: Nếu l rỗng thì

Con trỏ đầu và cuối của danh sách = p

*Trường hợp 2: (l khác rỗng)

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

B2: Gán con trỏ đầu = p

- Cài đặt:

void ThemDau(LIST &l, NODE *p)

{

if(l.pHead==NULL)

l.pHead=l.pTail=p;

else

{

p->pNext = l.pHead;

Trang 2

}

}

5.2 Thêm phần tử vào cuối danh sách

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

- Đầu vào: DSLK đơn l, phần tử p cần thêm

- Kết quả: DSLK đơn l sau khi thêm

- Giải thuật:

*Trường hợp 1: Nếu l rỗng thì

Con trỏ đầu và cuối của danh sách = p

*Trường hợp 2: (l khác rỗng)

B1: Con trỏ cuối của danh sách trỏ kế tiếp vào p

B2: Gán con trỏ cuối = p

- Cài đặt:

void ThemCuoi(LIST &l, NODE *p)

{

if(l.pHead==NULL)

l.pHead=l.pTail=p;

else

{

l.pTail->pNext =p;

l.pTail = p;

Trang 3

}

}

5.3 Thêm phần tử vào sau một phần tử cho trước

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

- Đầu vào: DSLK đơn l, phần tử k cần thêm và phần tử p

- Kết quả: DSLK đơn l sau khi thêm k sau p

- Giải thuật:

*Trường hợp 1: Nếu p là con trỏ cuối của danh sách thì

Thêm k vào cuối danh sách l

*Trường hợp 2: (p khác con trỏ cuối)

B1: pSau là con trỏ đứng sau p

B2: Cho p trỏ tới k

B3: Cho k trỏ tới pSau

- Cài đặt:

void ThemkSaup(LIST &l, NODE *p, NODE *k)

{

if(p==l.pTail)

ThemCuoi(l, k);

else

{

Trang 4

p->pNext = k;

k->pNext = pSau;

}

}

5.4 Thêm phần tử k vào trước một phần tử p cho trước

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

- Đầu vào: DSLK đơn l, phần tử k cần thêm và phần tử p

- Kết quả: DSLK đơn l sau khi thêm k trước p

- Giải thuật:

B1: Thêm k vào sau p

B2: Hoán vị giá trị của p và k

- Cài đặt:

void ThemkTruocp(LIST &l, NODE *p, NODE *k)

{

ThemkSaup(l, p, k);

int tam = p->Key;

p->Key = k->Key;

k->Key = tam;

}

Trang 5

6 Xóa

6.1 Xóa phần tử đầu

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

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

- Kết quả: DSLK đơn l sau khi xóa phần tử đầu

- Giải thuật:

*Trường hợp 1: Nếu l rỗng thì kết thúc

*Trường hợp 2: (l khác rỗng)

B1: pXoa là con trỏ đầu của danh sách

B2: Cho con trỏ đầu trỏ vào phần tử kế tiếp

B3: Xóa pXoa

B4: Nếu con trỏ đầu = NULL thì gán con trỏ cuối = NULL

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

TỪ KHÓA LIÊN QUAN

w