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

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

9 283 1

Đ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 9
Dung lượng 128,06 KB

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

Nội dung

//Thao tác QueueFront: Kiểm tra phần tử ở ñầu Queue int QueueFrontconst QUEUE &q, int& itemout { if IsEmptyq return 0; // Queue rỗng, không kiểm tra // lấy phần tử ñầu ra itemout = q.QAr

Trang 1

//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

Trang 2

//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

Trang 3

//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

Trang 4

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

Trang 5

//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

Trang 6

//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

Trang 7

//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

Trang 8

//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

Trang 9

//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

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

TỪ KHÓA LIÊN QUAN