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

Bài giảng cấu trúc dữ liệu - Chương 2 Cấu trúc dữ liệu danh sách pdf

80 966 3

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 906 KB

Nội dung

KHOA KHOA HỌC MÁY TÍNH – BỘ MƠN LẬP TRÌNH BÀI GIẢNG CẤU TRÚC DỮ LIỆU (BẬC CAO ĐẲNG) Chương2: CẤU TRÚC DỮ LIỆU DANH SÁCH Nguyễn Thanh Cẩm NỘI DUNG TRÌNH BÀY Danh sách Danh sách đặc Danh sách liên kết Ngăn xếp Hàng đợi 1 Danh sách a Định nghĩa b Các phép toán danh sách Danh sách a Định nghĩa Danh sách tập hợp hữu hạn phần tử kiểu (Elementtype) : a1, a2, …, an (n>=1) với tính chất: biết biết ai+1 (0Rear=-1; } Hàng đợi c Tổ chức theo danh sách đặc Kiểm tra hàng rỗng int Empty_Queue(Queue Q) { return Q.Front==-1; } Hàng đợi c Tổ chức theo danh sách đặc Kiểm tra đầy Hàng đầy số phần tử có hàng số phần tử mảng int Full_Queue(Queue Q) { return (Q.Rear-Q.Front+1)==MaxLength; } Hàng đợi c Tổ chức theo danh sách đặc Xóa phần tử khỏi hàng Khi xóa phần tử đầu hàng ta cần cho front tăng lên Nếu front > rear hàng thực chất hàng rỗng, nên ta khởi tạo lại hàng rỗng (tức đặt lại giá trị front = rear =-1) Hàng đợi c Tổ chức theo danh sách đặc Xóa phần tử khỏi hàng void O_Queue(Queue *Q,int *x){ if (!Empty_Queue(*Q)) { *x=Q->Elements[Q->Front]; Q->Front=Q->Front+1; if (Q->Front>Q->Rear) Make_Queue(Q); } else coutRear==MaxLength-1) { for(int i=Q->Front;iRear;i++) Q->Elements[i-Q->Front]=Q->Elements[i]; Q->Rear=MaxLength - Q->Front-1; Q->Front=0; } Q->Rear=Q->Rear+1; Q->Elements[Q->Rear]=X; } else coutRear=NULL; } Hàng đợi d Tổ chức theo danh sách liên kết Kiểm tra hàng rỗng Hàng rỗng Front trỏ đến NULL int Empty_Queue(Queue Q) { return (Q.Front==NULL); } Hàng đợi d Tổ chức theo danh sách liên kết Thêm phần tử vào hàng void I_Queue(int X, Queue *Q) {Node *p; if(Q->Rear==NULL) { p=(Node*)malloc(sizeof(Node)); p->Element=X;p->Next=NULL; Q->Front=Q->Rear=p; }else {p=(Node*)malloc(sizeof(Node)); p->Element=X;p->Next=NULL; Q->Rear->Next=p; Q->Rear=p; } Hàng đợi d Tổ chức theo danh sách liên kết Xóa phần tử khỏi hàng void O_Queue(Queue *Q,int *x) { if (!Empty_Queue(*Q)) { *x=Q->Front->Element; Position T; T=Q->Front; Q->Front=Q->Front->Next; free(T); } else cout

Ngày đăng: 03/04/2014, 00:21

TỪ KHÓA LIÊN QUAN