1
Sự khác nhau giữa Stack và Queue trong C/C++ là gì?
1
Minh Hồng10 đã đăng:

Bạn nào có thể giải thích một cách chi tiết về khái niệm và cách sử dụng Stack và Queue trong C/C++ không ạ?

Mình cũng đang thắc mắc!☹☹☹

anhphamptka 10.05.2018

Stack và Queue có thể được hiểu đơn giản là hai cấu trúc dùng để lưu trữ dữ liệu trước khi dữ liệu được lấy ra để làm một việc gì đó, nó cũng tương tự như các cấu trúc lưu trữ cơ bản khác như cấu trúc mảng, từ điển, ... nhưng có một điểm khác biệt là ở "cách nó cung cấp dữ liệu ra ngoài",

  • Queue chỉ cho phép lấy dữ liệu theo kiểu FIFO (First-In-First-Out), có thể hiểu là ai vào trước thì ra trước, ví dụ nếu bạn lưu lần lượt các phần tử 2 $\leftarrow$ 3 $\leftarrow$ 5 vào Queue, đến khi bạn cần lấy phần tử ra, bạn chỉ có thể bắt đầu lấy 2 rồi mới tới 3 và cuối cùng là 5 bởi vì 2 là phần tử được nạp vào Queue đầu tiên cho nên được lấy ra đầu tiên.

  • Stack khác một chút, đó là cho phép lấy dữ liệu theo kiểu LIFO (Last-In-First-Out), có thể hiểu là ai vào sau cùng thì được ra trước nhất, ví dụ nếu bạn lưu lần lượt các phần tử 2 $\rightarrow$ 3 $\rightarrow$ 5 vào Stack thì khi lấy ra bạn sẽ lấy 5 ra đầu tiên vì phần tử 5 được lưu vào Stack sau cùng.

Nam Hưng 06.06.2018
thêm bình luận...
1
trungkfc02550 đã đăng:

Stack: là cấu trúc dữ liệu dùng để lưu trữ dữ liệu theo kiểu LIFO (Last-In-First-Out), tức là dữ liệu nào được nạp vào Stack sau cùng thì nó được lấy ra đầu tiên.

Cách Stack hoạt động

Giả sử ta lưu lần lượt 4 số nguyên 100, 24, 63, 52 vào Stack theo thứ tự từ trái sang phải, tức là 100 được lưu vào Stack đầu tiên, sau đó đến 24, 63 và cuối cùng là 52. Khi lấy phần tử ra khỏi Stack, 52 chắc chắn sẽ là phần tử bị lấy đầu tiên bởi ở Stack chỉ có một đường đi ra duy nhất chính là đường đã đi vào, điều này cũng có nghĩa là 52 vào sau cùng cho nên bị lấy đầu tiên.

Queue: là cấu trúc dữ liệu dùng để lưu trữ dữ liệu theo kiểu FIFO (First-In-First-Out), tức là dữ liệu nào vào Queue đầu tiên sẽ được lấy ra đầu tiên.

Cách Queue hoạt động

Tương tự, bạn hãy tưởng tượng Queue như đường một chiều có bề ngang chỉ đủ cho 1 chiếc xe máy đi thôi, nếu bạn tới đoạn đường một chiều trước, thứ nhất, bạn sẽ không thể quay đầu đi ngược lại phía sau vì phía sau bạn đã chật kín người đang khó chịu giận dữ muốn đi qua đoạn đường này, thứ hai, bạn sẽ được ra khỏi đường một chiều sớm nhất vì bạn là người vào đầu tiên, phía trước bạn không có ai cản đường nữa, chỉ việc chạy thẳng thôi.

đã bổ sung 3.1 năm trước bởi
Avatar: trungkfc02 trungkfc02550
thêm bình luận...
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)