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 965 3
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

Đ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

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

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

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

Tài liệu liên quan