""

logo

  • Tin Mới
  • Thời Trang
  • Tin Nóng
  • Kinh Nghiệm
  • Công Nghệ
No Result
View All Result
logo
No Result
View All Result
Trang chủ Tin Mới cài đặt queue bằng danh sách liên kết

Cài Đặt Queue Bằng Danh Sách Liên Kết

by Admin _ January 30, 2022

Trong lý giải này mình đã giới thiệu các bạn cách cài đặt hàng ngóng Queue bằng danh sách liên kết. Đây là 1 trong nhì cách công dụng nhất để thiết lập hàng ngóng Queue.

Bạn đang xem: Cài đặt queue bằng danh sách liên kết

*


*

Chúng ta sẽ thuộc nhau mày mò về bí quyết khởi tạo kết cấu dữ liệu mang đến Queue và tiến hành tạo các hàm cơ phiên bản trên hàng đợi. Tiếp nối sử dụng các hàm đã tạo nên viết một lịch trình nhập xuất dễ dàng và đơn giản trong C++.

1. Kết cấu dữ liệu của hàng hóng Queue

Hàng đợi là một kết cấu trừu tượng, vị vậy để gia công việc cùng với nó ta bắt buộc tạo cấu tạo dữ liệu cho nó. Trong gợi ý này mình sử dụng danh sách link để sản xuất Queue vì chưng vậy thứ nhất ta cần phải có cấu trúc của một Node trong list liên kết.


Tiếp cho là nhị hàm khởi tạo rỗng mang lại Node cùng hàm tạo bắt đầu một Node, đó là những hàm mà bọn họ đã học tập ở những bài về danh sách liên kết


/* khởi sinh sản rỗng mang đến Node vào danh sách links */void Init( Queue &q )q.head = q.tail = NULL;/* hàm chế tạo ra một Node new */Node *createNode( int x )Node *p = new Node;if(!p) exit(1);p->next = NULL;p->data = x;return p;
Cuối thuộc là sinh sản một cấu tạo của hàng chờ Queue bằng cách sử dụng Node để tạo, bao hàm hai con trỏ là head cùng tail nhằm quản lý thành phần đầu và bộ phận cuối.


2. Các hàm cơ bạn dạng trong hàng ngóng Queue

Trong phần này mình sẽ thực hiện tạo một số hàm cơ bản cần thiết trong hàng hóng Queue: Push(), Top(), Pop().

Hàm Push

Hàm Push() là hàm để thêm các bộ phận vào đầu mặt hàng đợi, đây là một hàm rất đặc biệt quan trọng vì nếu không tồn tại dữ liệu vào hàng hóng thì ta không thể triển khai các thao tác khác.

Việc thứ nhất ta sẽ soát sổ xem sản phẩm đợi gồm rỗng tốt không, nếu như trong Queue không tồn tại thành phần nào thì phần tử được thêm vào đó là pHead với pTail. Trái lại nếu vào Queue đã tồn tại thành phần thì ta đến pNext của pTail trỏ cho tới node p.

Xem thêm: Bảng Màu Son Maybelline Color Show Matte, Bảng Màu Son Maybelline Color Show


/* hàm thêm thành phần vào đầu vào hàng hóng Queue */void Push(Queue &q, Node *p ) //kiểm tra giả dụ hàng đợi rỗng thì phần tử thêm vào chính là pHead và pTailif(!q.head) q.head = q.tail = p; //Nếu trong list đã tồn tại bộ phận thì mang lại pNext của pTail trỏ cho tới node phường //khi đó node p đó là pTailelseq.tail->next = p;q.tail = p;

Hàm Top

Hàm Top() là hàm để lấy phần tử đầu tiên trong hàng hóng Queue tuy thế không xóa nó khỏi Queue. Hay nói theo cách khác là nó chỉ hiển thị bộ phận đầu tiên vào Queue.

Ta thực hiện kiểm tra ví như hàng ngóng tồn tại phần tử thì return thành phần đó, trái lại nếu vào hàng đợi rỗng thì return 0 và ngừng hàm.


int Top(Queue q ) //kiểm tra nếu như hàng chờ tồn tại phần tử thì ta triển khai return bộ phận đầu tiênif(q.head)return q.head->data; //Nếu trong hàng chờ rỗng thì return 0 và ngừng hàmelse return 0;

Hàm Pop

Hàm Pop() là hàm xóa thành phần đầu tiên trong sản phẩm đợi, đấy là một hàm cũng khá quan trọng bởi vì trong một số trường hòa hợp ta cần được xóa phần tử khỏi Queue.

Việc đầu tiên ta sẽ đánh giá xem trong Queue gồm tồn tại phần tử hay không, nếu tất cả tồn tại phần tử thì thực hiện các bước sau:

Tạo bắt đầu một Node p. (là Node sửa chữa cho Node bắt buộc xóa).Trỏ bé trỏ Next đến phần tử tiếp theo để rất có thể xóa phần tử đầu.Gán data cho p và return nó.Thực hiện tại xóa p. Khỏi sản phẩm đợi.

/* hàm xóa bộ phận đầu trong hàng ngóng */int Pop(Queue &q ) //kiểm tra giả dụ hàng đợi tồn tại thì thực hiện các câu lệnhif(q.head) //tạo new một Node p. (là node thay thế sửa chữa cho node đề nghị xóa)Node *p = q.head; //trỏ con trỏ Next đến thành phần tiếp theo để có thể xóa bộ phận đầuq.head = q.head->next; //gán data cho p. Và return nóreturn p->data; //sau lúc return thì thực hiện xóa nó khỏi hàng đợidelete p;return 0;// tuong duong queue rong

3. Ví dụ về hàng đợi Queue

Trong lấy ví dụ như này mình sẽ sử dụng những hàm đã tạo ở trên nhằm thêm một số phần tử và mặt hàng đợi, tiếp nối tạo một menu với các làm việc như:

Thêm thành phần vào Queue.Xuất các phần tử trong Queue.Lấy bộ phận đầu tiên vào Queue.Xóa thành phần đầu tiên vào Queue.

Các bạn có thể tham khảo code của chính mình dưới đây, trong những số ấy mình đã bao gồm chú thích rõ ràng.

Full code:


/**** chế tạo ra hàng đợi Queue bởi danh sách links đơn ****/#includeusing namespace std;/* tạo kết cấu của Node vào danh sách links */struct NodeNode *next;int data;;/* tạo cấu tạo của hàng ngóng Queue */struct QueueNode *head, *tail;;/* khởi sinh sản rỗng đến Node vào danh sách link */void Init( Queue &q )q.head = q.tail = NULL;/* hàm chế tác một Node bắt đầu */Node *createNode( int x )Node *p = new Node;if(!p) exit(1);p->next = NULL;p->data = x;return p;/* hàm thêm phần tử vào đầu vào hàng chờ Queue */void Push(Queue &q, Node *p ) //kiểm tra giả dụ hàng chờ rỗng thì phần tử thêm vào đó là pHead và pTailif(!q.head) q.head = q.tail = p; //Nếu trong danh sách đã tồn tại phần tử thì mang lại pNext của pTail trỏ tới node p. //khi kia node p chính là pTailelseq.tail->next = p;q.tail = p;/* hàm lấy phần tử đầu trong hàng đợi, tuy thế không xóa nó */int Top(Queue q ) //kiểm tra ví như hàng hóng tồn tại thành phần thì ta thực hiện return bộ phận đầu tiênif(q.head)return q.head->data; //Nếu trong hàng hóng rỗng thì return 0 và kết thúc hàmelse return 0;/* hàm xóa phần tử đầu trong hàng đợi */int Pop(Queue &q ) //kiểm tra nếu hàng ngóng tồn trên thì thực hiện các câu lệnhif(q.head) //tạo bắt đầu một Node phường (là node sửa chữa thay thế cho node nên xóa)Node *p = q.head; //trỏ bé trỏ Next đến phần tử tiếp theo để có thể xóa bộ phận đầuq.head = q.head->next; //gán data cho p. Và return nóreturn p->data; //sau lúc return thì triển khai xóa nó khỏi hàng đợidelete p;return 0;// tuong duong queue rong/* hàm nhập các bộ phận vào hàng ngóng */void nhap(Queue &q )int n, x; cout> n;while(n--)cout> x;Node *p = createNode(x);Push(q,p);/* hàm xuất các thành phần trong hàng hóng */void xuat(Queue q ){Node *p = q.head;while(p)coutdata next;cout> lc; switch(lc){ case 0: break; case 1: nhap(q); break; case 2: cout
Kết quả: Mình sẽ sử dụng thao tác 1 với 2 vào menu, các chúng ta cũng có thể kiểm tra các thao tác khác nhé.

4. Kết luận

Như vậy là chúng ta đã tra cứu hiểu hoàn thành cách thiết lập hằng chờ Queue bằng list liên kết, cũng như tạo những hàm cơ phiên bản trong Queue. Các bạn hãy rèn luyện nó thật những để hoàn toàn có thể ghi lưu giữ nhớ thật thọ nhé. Ở bài tiếp theo mình đã hướng dẫn các bạn cách cài đặt Queue bởi mảng một chiều, hãy để ý theo dõi nhé !!



Tìm các số chẵn lẻ bằng Queue cùng Stack

Để làm được bài bác này các bạn cần có kiến thức và kỹ năng về cấu tạo Queue…



cài đặt hàng hóng Queue bằng mảng một chiều

họ sẽ cùng nhau tìm hiểu về cách thiết đặt hàng đợi Queue bằng…



Hàng ngóng Queue là gì? cấu trúc dữ liệu và những cách thiết lập Queue

Trong khuyên bảo này mình đang giới thiệu chúng ta một kết cấu lưu trữ…



bài tập kiểm tra số nguyên tố bằng Stack

họ sẽ với mọi người trong nhà tạo một kết cấu Stack với danh sách liên kết…


bài bác tập biến đổi cơ số bằng Stack

Trong hướng dẫn này mình sẽ tiến hành giải một bài toán đổi khác cơ…


thiết đặt Stack bằng mảng một chiều

họ sẽ lần lượt tiến hành tạo những hàm cơ phiên bản cho Stack như:…


cài đặt Stack bởi danh sách liên kết

họ sẽ triển khai lần lượt các thao tác trong Stack sử dụng danh…


phòng xếp Stack là gì? cấu tạo và cơ chế chuyển động ra sao?

Trong giải đáp này mình đang giới thiệu chúng ta một cấu tạo lưu trữ…


Cây đỏ đen là gì? cấu tạo của Red-Black Tree

Trong chỉ dẫn này mình sẽ giới thiệu chúng ta một cấu tạo dữ liệu…


Xóa Node ngoài cây nhị phân tìm kiếm kiếm

họ sẽ cùng nhau tiến hành xóa Node có một con, Node gồm 2…


search Node MAX và MIN trong cây nhị phân kiếm tìm kiếm

bọn họ sẽ triển khai một vài bí quyết tìm ra quý hiếm MAX cùng MIN…


Xuất Node con và lá vào cây nhị phân tìm kiếm kiếm

Trong chỉ dẫn này mình vẫn giới thiệu các bạn cách xuất những Node con…


tra cứu kiếm Node trên cây nhị phân search kiếm

Trong lí giải này mình đang giới thiệu các bạn cách kiếm tìm kiếm một Node…


Thêm Node vào cây nhị phân tìm kiếm kiếm

Trong hướng dẫn này mình vẫn giới thiệu các bạn về cấu tạo dữ liệu…


kết cấu cây nhị phân là gì? vận động ra sao?

Trong bài này mình vẫn giới thiệu chúng ta một vào các cấu tạo dữ…


Gộp hai danh sách links đôi

chúng ta sẽ thuộc nhau tò mò về bí quyết nối hai danh sách liên kết…


tìm kiếm kiếm phần tử k trong danh sách link đôi

chúng ta sẽ cùng nhau khám phá cách tra cứu kiếm một phần tử k trong…

Share Tweet Linkedin Pinterest
Previous Post

Bảng chữ cái tiếng anh là gì

Next Post

Top 4 item quần áo nam mùa hè gây bão cực chất 2022 menfit

CÙNG CHUYÊN MỤC

cách sử dụng bộ uốn mi lash lift

Cách sử dụng bộ uốn mi lash lift

04/10/2021
nhóm n9 giờ ra sao

Nhóm n9 giờ ra sao

02/10/2021
truyện tranh 18 màu tiếng việt

Truyện tranh 18 màu tiếng việt

05/10/2021
cấu tạo chiếc nón lá

Cấu tạo chiếc nón lá

21/12/2021
tuấn trần bao nhiêu tuổi

Tuấn trần bao nhiêu tuổi

02/06/2023
van xả nước tự động có cài đặt thời gian jorc model 2506

Van xả nước tự động có cài đặt thời gian jorc model 2506

01/06/2023
những câu nói khiến người khác phải im lặng

Những câu nói khiến người khác phải im lặng

31/05/2023
xe ô tô huynh đai i20

Xe ô tô huynh đai i20

30/05/2023

Newsletter

The most important automotive news and events of the day

We won't spam you. Pinky swear.

Chuyên Mục

  • Tin Mới
  • Thời Trang
  • Tin Nóng
  • Kinh Nghiệm
  • Công Nghệ

News Post

  • Vòng tay gỗ huyết rồng

About

Chúng tôi tạo ra trang web nhằm mục đích mang lại kiến thức bổ ích cho cộng đồng, các bài viết được sưu tầm từ nhiều nguồn trên internet giúp mang lại kiến thức khách quan dành cho bạn

©2023 padinno.com - Website WordPress vì mục đích cộng đồng

No Result
View All Result
  • Trang chủ
  • Chuyên mục
    • Tin Mới
    • Thời Trang
    • Tin Nóng
    • Kinh Nghiệm
    • Công Nghệ
  • Lưu trữ
  • Liên hệ

© 2023 padinno.com - Website WordPress vì mục đích cộng đồng.