Microsoft Word - cau-truc-du-lieu-hang-doi.docx

Tài liệu tương tự
Microsoft Word - danh-sach-lien-ket-doi-trong-c.docx

Danh sách tuyến tính kiểu hàng đợi Danh sách tuyến tính kiểu hàng đợi Bởi: Khoa CNTT ĐHSP KT Hưng Yên ĐỊNH NGHĨA Hàng đợi là một vật chứa (container)

Microsoft Word - cau-truc-du-lieu-danh-sach-lien-ket.docx

Tài liệu Hướng dẫn sử dụng

Lập trình và ngôn ngữ lập trình

Hàm và lớp template trong Lập trình hướng đối tượng Hàm và lớp template trong Lập trình hướng đối tượng Bởi: unknown Trong phần này, chúng ta tìm hiểu

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG WEBSITE HRM MỤC LỤC CHƯƠNG 1 ĐĂNG NHẬP VÀ ĐĂNG XUẤT Đăng nhập hệ thống Đăng xuất hệ thống...3 CHƯƠNG 2 THÔN

Bài 7. Con trỏ Mục tiêu: 1. Luyện tập sử dụng con trỏ và địa chỉ của các biến 2. Sử dụng con trỏ khi thao tác với mảng. Giới hạn: không dùng các thư v

Bài tập thực hành NNLT Visual Basic GV. Nguyễn Thị Hải Bình BÀI THỰC HÀNH ÔN TẬP 1. Sinh viên ĐỌC CẨN THẨN TẤT CẢ NỘI DUNG trong bài thực hành trước k

Template and Exception Template and Exception Bởi: Thanh Hiền Vũ TEMPLATE Trong phần này, chúng ta tìm hiểu về một trong các đặc tính còn lại của C++,

Bài tập thực hành Chuyên đề 1 CNPM - Java Khoa CNTT- Trường ĐH Công nghệ TP.HCM Lab 01: LẬP TRÌNH JAVA CƠ BẢN VỚI NET BEANS A. MỤC TIÊU: Hướng dẫn tải

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

BÀI TẬP THỰC HÀNH

PowerPoint Presentation

Chương trình dịch

PHẦN 8: LỊCH TUẦN I. Giới thiệu: Chương trình lịch tuần với các tính năng như sau: Lịch chạy trên giao diện WEB với CSDL chạy tập trung. Theo dõi lịch

Công Ty Công Nghệ Tin Học Mũi Tên Vàng Địa chỉ: Số 7 Nam Quốc Cang, Quận 1, TP HCM Điện thoại: Hotline: Website:

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Hướng dẫn Bắt đầu Nhanh Microsoft Publisher 2013 trông khác với các phiên bản trước, vì vậy chúng tôi tạo ra hướng dẫn này để giúp bạn dê dàng nắm bắt

Câu lệnh (statement) Câu lệnh (statement) Bởi: Khuyet Danh Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu

Chương 1:

VI. HƯỚNG DẪN SỬ DỤNG CỔNG THÔNG TIN ĐHQGHN A. Hướng dẫn truy cập: 1. Vào địa chỉ: 2. Màn hình đăng nhập xuất

HỘI THI TIN HỌC TRẺ TỈNH AN GIANG ĐỀ CHÍNH THỨC ĐỀ THI LÝ THUYẾT BẢNG A - KHỐI TIỂU HỌC Khóa ngày: Thời gian : 20 phút (không kể thời gian

Các biến và các kiểu dữ liệu trong JavaScript Các biến và các kiểu dữ liệu trong JavaScript Bởi: Hà Nội Aptech Các biến (Variables) Biến là một tham c

Microsoft Word - bo_tien_xu_ly_trong_c.docx

TRƢỜNG ĐẠI HỌC BÁCH KHOA TRUNG TÂM CÔNG NGHỆ THÔNG TIN ĐỊA LÍ GIỚI THIỆU PHẦN MỀM QUẢN LÝ MẠNG LƢỚI CẤP NƢỚC Thành phố Hồ Chí Minh, tháng 12/2018

Hướng dẫn sử dụng 1

Chương trình dịch

Array, Indexer và Collection Array, Indexer và Collection Bởi: phamvanviet truonglapvy Mảng (Array) Mảng là một tập hợp các phần tử có cùng kiểu, được

Hướng dẫn sử dụng Phần mềm Quản lý Đoàn viên

I

Trường ĐHBK Hà Nội Khoa Điện Bộ môn Điều khiển Tự động Tài liệu hướng dẫn thực hành: KĨ THUẬT LẬP TRÌNH C/C++ Bài 1: Lập trình cơ sở 1 Mục đích bài th

Microsoft Word - Cau hoi on tap.doc

Trung Tâm Gia Sư Tài Năng Việt Đề Số 1 Câu 1: Sau khi thực hiện đoạn chương trình sau, giá trị của biến S bằng bao nhiêu: S

BỘ GIÁO DỤC VÀ ĐÀO TẠO TÀI LIỆU HƯỚNG DẪN SỬ DỤNG CHỨC NĂNG ĐIỀU CHỈNH NGUYỆN VỌNG ĐĂNG KÝ XÉT TUYỂN TRỰC TUYẾN (Dành cho Thí sinh Điều chỉnh nguyện v

TẬP ĐOÀN VIỄN THÔNG QUÂN ĐỘI VIETTEL TRUNG TÂM CÔNG NGHỆ THÔNG TIN 1 HƯỚNG DẪN SỬ DỤNG HỆ THỐNG QUẢN LÝ VÀ ĐIỀU HÀNH VĂN BẢN ĐIỆN TỬ Đối tượng Văn thư

HƯỚNG DẪN THỦ TỤC NHẬP HỌC CHO TÂN SINH VIÊN TRÚNG TUYỂN NĂM 2016 Học viện Công nghệ Bưu chính Viễn thông thông báo thủ tục nhập học hệ đại học chính

User manual template

HIỆP ĐỊNH GIỮA CHÍNH PHỦ NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM VÀ CHÍNH QUYỀN KHU HÀNH CHÍNH ĐẶC BIỆT HỒNG KÔNG CỦA NƯỚC CỘNG HÒA NHÂN DÂN TRUNG HOA

CÔNG BÁO/Số /Ngày BỘ TÀI CHÍNH BỘ TÀI CHÍNH Số: 212/2014/TT-BTC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

Nhúng mã-cách khai báo biến Nhúng mã-cách khai báo biến Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nhúng mã javascript trong trang HTML Bạn có thể nhúng JavaScri

Nơi bạn đặt niềm tin Hướng dẫn sử dụng Biểu đồ phân tích kỹ thuật FPTS Chart 3.0 1

Loi vong lap lap vo tan - Worksheet_Change

Microsoft Word - HDSD-QLHD.doc

Chương trình dịch

Microsoft Word - Document1

Sunlite Suite 2 III Programming Chọn tab "All" để xem số channels của tất cả fixture của bạn. -Bạn có thể đánh số fixture của bạn bằng danh mục (index

Lớp đối tượng String Lớp đối tượng String Bởi: Khuyet Danh Ngôn ngữ C# hỗ trợ khá đầy đủ các chức năng của kiểu chuỗi mà chúng ta có thể thấy được ở c

Con trỏ và cấu trúc động Con trỏ và cấu trúc động Bởi: Thu Nguyen CON TRỎ VÀ CẤU TRÚC ĐỘNG 1. Khái niệm: Khi khai báo một biến, dù là biến đơn hay biế

SKYWARD FAMILY ACCESS Family Access Học Khu Quận Orange

I. MSWLogo là gì. Giới thiệu. Là một ngôn ngữ lập trình được thiết kế và phát triển bởi Seymour Papert, Daniel Bobrow và Wallace Feurzeig. Trong chươn

HƯỚNG DẪN SỬ DỤNG BẢNG GIÁ I-BOARD Menu A. LAYOUT VÀ CHẾ ĐỘ VIEW BẢNG GIÁ Chọn theme màu nền khác nhau Chọn chế độ view... 3 B. CÁC TÍ

Microsoft Word - tong_hop_thuoc_tinh_trong_css.docx

Microsoft Word - co_ban_ve_jquery.docx

Hướng dẫn sử dụng SSI Pro Trading dành cho MG

Phân tích bài Tiếng nói của văn nghệ

10 KIỂU CONTENT thu hút khách hàng trên Youtube Tác giả: Nguyễn Quốc Đạt Danh sách 10 kiểu content thu hút khách hàng trên Youtube Cám ơn bạn đã tin t

Microsoft Word - Du thao bao cao DHCD 2017

MÁY TOÀN ĐẠC ĐIỆN TỬ LEICA TCR1101

Phương Pháp Niệm Phật

CHÍNH TRỊ - KINH TẾ HỌC Tái cơ cấu doanh nghiệp nhà nước ở Việt Nam Tái cơ cấu doanh nghiệp nhà nước ở Việt Nam Nguyễn Anh Bắc * Tóm tắt: Doanh nghiệp

ĐẠO ĐỨC LẻM NGƯỜI

Microsoft Word - QUI CHE QUAN TRI NOI BO CTY.doc

Quyết định số 218/2000/QĐ-BTC ngày 29/12/2000

Cách viết một ứng dụng trên microsoft windows Cách viết một ứng dụng trên microsoft windows Bởi: Khuyet Danh CÁCH VIẾT MỘT ỨNG DỤNG TRÊN MICROSOFT WIN

Chia sẻ Dữ liệu Vô danh Với Lenovo Nội dung Chia sẻ Dữ liệu Vô danh Với Lenovo... 1 Harmony... 1 Lenovo Companion Lenovo Customer Engagement

Soạn bài lớp 9: Tổng kết về từ vựng

ĐÊ CƯƠNG CHI TIẾT HỌC PHẦN

Lương Sĩ Hằng Yêu Đời Yêu Đạo Thực Hành

Kiểu dữ liệu văn bản Kiểu dữ liệu văn bản Bởi: PGS. TS. NGƯT Phạm Văn Huấn Ngoài những dữ liệu số như các số nguyên, số thực, máy tính còn có thể lưu

Lương Sĩ Hằng Tha Thứ Và Thương Yêu

Microsoft Word - nhung-yeu-cau-ve-su-dung-tieng-viet.docx

Microsoft Word - su_dung_sqlite_voi_php.docx

HƯỚNG DẪN SỬ DỤNG VNCS HOME TRADING 1. Bảng mô tả Thuật ngữ viết tắt Viết tắt CTCK KH TK PHT Mô tả Công ty chứng khoán Khách hàng Tài khoản Phát hành

Microsoft Word - QCHV 2013_ChinhThuc_2.doc

PowerPoint Template

KIỂM TRA CUỐI KÌ I, NĂM HỌC Môn : Tiếng Việt Lớp 2 Thời gian làm bài : 40 phút A.Phần đọc: (10 điểm) I. Đọc thành tiếng: (5 điểm) Giáo viên

Copyright vietjack.com Chuỗi (String) trong C# Trong C#, bạn có thể sử dụng các chuỗi (string) như là mảng các ký

PowerPoint Template

UART0

2018 Nhận xét, phân tích, góp ý cho Chương trình môn Tin học trong Chương trình Giáo dục Phổ thông mới

Các cấu trúc logic trong lập trình 1 Cấu trúc tuần tự (Sequence) 1.1 Những câu lệnh phải được sắp xếp theo thứ tự Một số hướng dẫn cho việc tổ chức câ

DANH SACH THI TNCT_180318_CS1.xlsx

CÔNG BÁO/Số /Ngày QUY TRÌNH KIỂM TOÁN BÁO CÁO QUYẾT TOÁN NGÂN SÁCH NHÀ NƯỚC (Ban hành kèm theo Quyết định số 03/2013/QĐ-KTNN ng

Hãy chọn phương án đúng CÂU HỎI TRẮC NGHIỆM TIN HỌC 7 HK1 Câu 1: Bảng tính thường được dùng để: a. Tạo bảng điểm của lớp em b. Bảng theo dõi kết quả h

Mảng Mảng Bởi: Thu Nguyen DỮ LIỆU KIỂU MẢNG (ARRAY) I. KHAI BÁO MẢNG Cú pháp: TYPE VAR <Kiểu mảng> = ARRAY [chỉ số] OF <Kiểu dữ liệu>; <Biến mảng>:<ki

BỘ TÀI CHÍNH Số: 194/2013/TT-BTC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Hà Nội, ngày 17 t

ĐỀ CƯƠNG MÔ ĐUN KỸ THUẬT MAY 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Kiểu dữ liệu và biểu thức trong C Nội dung 1. Các ki

Công văn số 879/VTLTNN-NVĐP ngày 19/12/2006 của Cục Văn thư và Lưu trữ Nhà nước v/v hướng dẫn tổ chức tiêu hủy tài liệu hết giá trị

HƯỚNG DẪN SỬ DỤNG TỦ LẠNH FFK 1674XW Exclusive Marketing & Distribution HANOI Villa B24, Trung Hoa - Nhan Chinh, Thanh Xuan District

Microsoft Word - Huong dan su dung Mailchimp.docx

Mật Tạng Bộ 2 - No 973 (Tr.377 Tr.383) TÔN THẮNG PHẬT ĐẢNH CHÂN NGÔN DU GIÀ PHÁP _QUYỂN HẠ_ Phạn Hán dịch: Tam Tạng THIỆN VÔ ÚY Việt dịch: Sa Môn THÍC

Vai trò của giao tiếp trong cuộc sống và trong hoạt động lãnh đạo, quản lý Để tồn tại và phát triển mồi người không thể sống một mình, tách khỏi gia đ

Lớp và đối tượng-các hàm và các lớp friend Lớp và đối tượng-các hàm và các lớp friend Bởi: Thanh Hiền Vũ CÁC HÀM VÀ CÁC LỚP friend Một hàm friend của

BỘ VĂN HÓA, THỂ THAO VÀ DU LỊCH TRƯỜNG ĐẠI HỌC VĂN HÓA TP. HỒ CHÍ MINH & QUY CHẾ HỌC VỤ Tài liệu dành cho sinh viê

TRƯỜnG ĐẠI HỌC BÁCH KHOA HÀ nội VIỆn CÔnG nghệ THÔnG TIn VÀ TRUYỀn THÔnG TIN HỌC ĐẠI CƯƠNG Bài 10. Các cấu trúc lập trình trong C Nội dung 1. Cấu trúc

Slide 1

Nhập môn Công Nghệ Thông Tin 1

Bản ghi:

Cấu trúc dữ liệu hàng đợi (Queue) Cấu trúc dữ liệu hàng đợi (Queue) là gì? Hàng đợi (Queue) là một cấu trúc dữ liệu trừu tượng, là một cái gì đó tương tự như hàng đợi trong đời sống hàng ngày (xếp hàng). Khác với ngăn xếp, hàng đợi là mở ở cả hai đầu. Một đầu luôn luôn được sử dụng để chèn dữ liệu vào (hay còn gọi là sắp vào hàng) và đầu kia được sử dụng để xóa dữ liệu (rời hàng). Cấu trúc dữ liệu hàng đợi tuân theo phương pháp First-In-First-Out, tức là dữ liệu được nhập vào đầu tiên sẽ được truy cập đầu tiên. Trong đời sống thực chúng ta có rất nhiều ví dụ về hàng đợi, chẳng hạn như hàng xe ô tô trên đường một chiều (đặc biệt là khi tắc xe), trong đó xe nào vào đầu tiên sẽ thoát ra đầu tiên. Một vài ví dụ khác là xếp hàng học sinh, xếp hàng mua vé, Biểu diễn cấu trúc dữ liệu hàng đợi (Queue) Giờ thì có lẽ bạn đã tưởng tượng ra hàng đợi là gì rồi. Chúng ta có thể truy cập cả hai đầu của hàng đợi. Dưới đây là biểu diễn hàng đợi dưới dạng cấu trúc dữ liệu:

Tương tự như cấu trúc dữ liệu ngăn xếp, thì cấu trúc dữ liệu hàng đợi cũng có thể được triển khai bởi sử dụng Mảng (Array), Danh sách liên kết (Linked List), Con trỏ (Pointer) và Cấu trúc (Struct). Để đơn giản, phần tiếp theo chúng ta sẽ tìm hiểu tiếp về hàng đợi được triển khai bởi sử dụng mảng một chiều. Các hoạt động cơ bản trên cấu trúc dữ liệu hàng đợi Các hoạt động trên cấu trúc dữ liệu hàng đợi có thể liên quan tới việc khởi tạo hàng đợi, sử dụng dữ liệu trên hàng đợi và sau đó là xóa dữ liệu khỏi bộ nhớ. Danh sách dưới đây là một số hoạt động cơ bản có thể thực hiện trên cấu trúc dữ liệu hàng đợi: Hoạt động enqueue(): thêm (hay lưu trữ) một phần tử vào trong hàng đợi. Hoạt động dequeue(): xóa một phần tử từ hàng đợi. Để sử dụng hàng đợi một cách hiệu quả, chúng ta cũng cần kiểm tra trạng thái của hàng đợi. Để phục vụ cho mục đích này, dưới đây là một số tính năng hỗ trợ khác của hàng đợi: Phương thức peek(): lấy phần tử ở đầu hàng đợi, mà không xóa phần tử này. Phương thức isfull(): kiểm tra xem hàng đợi là đầy hay không. Phương thức isempty(): kiểm tra xem hàng đợi là trống hay hay không. Trong cấu trúc dữ liệu hàng đợi, chúng ta luôn luôn: (1) dequeue (xóa) dữ liệu được trỏ bởi con trỏ front và (2) enqueue (nhập) dữ liệu vào trong hàng đợi bởi sự giúp đỡ của con trỏrear. Trong phần tiếp chúng ta sẽ tìm hiểu về các tính năng hỗ trợ của cấu trúc dữ liệu hàng đợi:

Phương thức peek() của cấu trúc dữ liệu hàng đợi Giống như trong cấu trúc dữ liệu ngăn xếp, hàm này giúp chúng ta quan sát dữ liệu tại đầu hàng đợi. Giải thuật của hàm peek() là: bắt đầu hàm peek return queue[front] kết thúc hàm Sự triển khai của hàm peek() trong ngôn ngữ C: int peek() { return queue[front]; } Phương thức isfull() trong cấu trúc dữ liệu hàng đợi Nếu khi chúng ta đang sử dụng mảng một chiều để triển khai hàng đợi, chúng ta chỉ cần kiểm tra con trỏ rear có tiến đến giá trị MAXSIZE hay không để xác định hàng đợi là đầy hay không. Trong trường hợp triển khai hàng đợi bởi sử dụng Danh sách liên kết vòng (Circular Linked List), giải thuật cho hàm isfull() sẽ khác. Phần dưới đây là giải thuật của hàm isfull(): bắt đầu hàm isfull if rear equals to MAXSIZE return true else return false endif kết thúc hàm Sự triển khai giải thuật của hàm isfull() trong ngôn ngữ C: bool isfull() { if(rear == MAXSIZE - 1) return true; else return false; } Phương thức isempty() trong cấu trúc dữ liệu hàng đợi Giải thuật của hàm isempty(): bắt đầu hàm isempty if front là nhỏ hơn MIN OR front là lớn hơn rear return true else return false kết thúc if kết thúc hàm Nếu giá trị của front là nhỏ hơn MIN hoặc 0 thì tức là hàng đợi vẫn chưa được khởi tạo, vì thế hàng đợi là trống. Dưới đây là sự triển khai code trong ngôn ngữ C: bool isempty() { if(front < 0 front > rear) return true; else return false; }

Hoạt động enqueue trong cấu trúc dữ liệu hàng đợi Bởi vì cấu trúc dữ liệu hàng đợi duy trì hai con trỏ dữ liệu: front và rear, do đó các hoạt động của loại cấu trúc dữ liệu này là khá phức tạp khi so sánh với cấu trúc dữ liệu ngăn xếp. Dưới đây là các bước để enqueue (chèn) dữ liệu vào trong hàng đợi: Bước 1: kiểm tra xem hàng đợi là có đầy không. Bước 2: nếu hàng đợi là đầy, tiến trình bị lỗi và bị thoát. Bước 3: nếu hàng đợi không đầy, tăng con trỏ rear để trỏ tới vị trí bộ nhớ trống tiếp theo. Bước 4: thêm phần tử dữ liệu vào vị trí con trỏ rear đang trỏ tới trong hàng đợi. Bước 5: trả về success. Đôi khi chúng ta cũng cần kiểm tra xem hàng đợi đã được khởi tạo hay chưa để xử lý các tình huống không mong đợi.

Giải thuật cho hoạt động enqueue trong cấu trúc dữ liệu hàng đợi bắt đầu enqueue(data) if queue là đầy return overflow endif rear rear + 1 queue[rear] data return true kết thúc hàm Sự triển khai giải thuật của hoạt động enqueue() trong ngôn ngữ C: int enqueue(int data) if(isfull()) return 0; rear = rear + 1; queue[rear] = data; return 1; kết thúc hàm Để theo dõi sự triển khai code đầy đủ của các hoạt động trên trong ngôn ngữ C, mời bạn click chuột vào chương: Hàng đợi trong C. Hoạt động dequeue trong cấu trúc dữ liệu hàng đợi Việc truy cập dữ liệu từ hàng đợi là một tiến trình gồm hai tác vụ: truy cập dữ liệu tại nơi con trỏ front đang trỏ tới và xóa dữ liệu sau khi đã truy cập đó. Dưới đây là các bước để thực hiện hoạt động dequeue: Bước 1: kiểm tra xem hàng đợi là trống hay không. Bước 2: nếu hàng đợi là trống, tiến trình bị lỗi và bị thoát. Bước 3: nếu hàng đợi không trống, truy cập dữ liệu tại nơi con trỏ front đang trỏ. Bước 4: tăng con trỏ front để trỏ tới vị trí chứa phần tử tiếp theo. Bước 5: trả về success.

Giải thuật cho hoạt động dequeue bắt đầu hàm dequeue if queue là trống return underflow end if data = queue[front] front front + 1 return true kết thúc hàm Sự triển khai hoạt động dequeue() trong ngôn ngữ C: int dequeue() { if(isempty()) return 0; int data = queue[front]; front = front + 1; return data; } Để theo dõi sự triển khai code đầy đủ của các hoạt động trên trong ngôn ngữ C, mời bạn click chuột vào chương: Hàng đợi trong C.