BÀI TẬP CÔNG NGHỆ THÔNG TIN TRƯỜNG ITC doc

9 283 1
BÀI TẬP CÔNG NGHỆ THÔNG TIN TRƯỜNG ITC doc

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

Thông tin tài liệu

71 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Thao tác DeQueue: lấy ra 1 phần tử ở ñầu Queue int DeQueue(QUEUE &q, int& itemout) { if (IsEmpty(q)) return 0; // Queue rỗng, không lấy ra ñược itemout = q.QArray[q.QFront]; // lấy phần tử ñầu ra q.QFront++; q.QNumItems ; if (q.QFront==q.QMax) // nếu ñi hết mảng … q.QFront = 0; // … quay trở về ñầu mảng if (q.QNumItems==0) // nếu lấy ra phần tử cuối cùng q.QFront = q.QRear = -1; // khởi tạo lại Queue return 1; // Lấy ra thành công } This is trial version www.adultpdf.com 72 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Thao tác QueueFront: Kiểm tra phần tử ở ñầu Queue int QueueFront(const QUEUE &q, int& itemout) { if (IsEmpty(q)) return 0; // Queue rỗng, không kiểm tra // lấy phần tử ñầu ra itemout = q.QArray[q.QFront]; return 1; } //Thao tác QueueRear: Kiểm tra phần tử ở cuối Queue int QueueRear(const QUEUE &q, int& itemout) { if (IsEmpty(q)) return 0; // Queue rỗng, không kiểm tra // lấy phần tử cuối ra itemout = q.QArray[q.QRear]; return 1; } This is trial version www.adultpdf.com 73 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Khai báo cấu trúc typedef struct tagNODE { int data; tagNODE* pNext; } NODE, *PNODE; typedef struct tagQUEUE { int NumItems; PNODE pFront, pRear; } QUEUE; Hàng ñợi sử dụng DSLK This is trial version www.adultpdf.com 74 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM Các thao tác cơ bản int InitQueue(QUEUE& q); int IsEmpty(const QUEUE& q); int IsFull(const QUEUE& q); int EnQueue(QUEUE &q, int newitem); int DeQueue(QUEUE &q, int& itemout); int QueueFront(const QUEUE &q, int& itemout); int QueueRear(const QUEUE &q, int& itemout); This is trial version www.adultpdf.com 75 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Khởi tạo Queue rỗng int InitQueue(QUEUE& q) { q.NumItems = 0; q.pFront = q.pRear = NULL; return 1; } This is trial version www.adultpdf.com 76 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Kiểm tra Queue rỗng int IsEmpty(const QUEUE& q) { return (q.NumItems==0); } //Kiểm tra Queue ñầy int IsFull(const QUEUE& q) { PNODE tmp = new NODE; if (tmp==NULL) return 1; delete tmp; return 0; } This is trial version www.adultpdf.com 77 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Thêm 1 phần tử vào cuối Queue int EnQueue(QUEUE &q, int newitem) { if (IsFull(q)==1) return 0; PNODE p = new NODE; p->data = newitem; p->pNext = NULL; if (q.pFront==NULL && q.pRear==NULL) q.pFront = q.pRear = p; else { q.pRear->pNext = p; q.pRear = p; } q.NumItems++; return 1; } This is trial version www.adultpdf.com 78 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Lấy ra 1 phần tử ở ñầu Queue int DeQueue(QUEUE &q, int& itemout) { if (IsEmpty(q)==1) return 0; PNODE p = q.pFront; q.pFront = p->pNext; itemout = p->data; q.NumItems ; delete p; if (q.NumItems==0) InitQueue(q); return 1; } This is trial version www.adultpdf.com 79 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Kiểm tra 1 phần tử ở ñầu Queue int QueueFront(const QUEUE &q, int& itemout) { if (IsEmpty(q)==1) return 0; itemout = q.pFront->data; return 1; } //Kiểm tra 1 phần tử ở cuối Queue int QueueRear(const QUEUE &q, int& itemout) { if (IsEmpty(q)==1) return 0; itemout = q.pRear->data; return 1; } This is trial version www.adultpdf.com . // khởi tạo lại Queue return 1; // Lấy ra thành công } This is trial version www.adultpdf.com 72 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Thao tác QueueFront: Kiểm. 71 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Thao tác DeQueue: lấy ra 1 phần tử ở ñầu Queue int DeQueue(QUEUE &q,. q.QArray[q.QRear]; return 1; } This is trial version www.adultpdf.com 73 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM //Khai báo cấu trúc typedef struct tagNODE { int data; tagNODE* pNext; } NODE,

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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan