Bài tập chương 2- Phần stack, queue - Cấu trúc dữ liệu và giải thuật | Trường Đại học Bách khoa Hà Nội

.Định giá các biểu thức hậu tố sau (các toán hạng và toán tử cách nhau 1 dấu cách, các toán hạng có thể gồm nhiều chữ số) √ là toán tử 1 ngôi căn bậc hai, 𝐴𝑁𝐷, 𝑁𝑂𝑇,𝑂𝑅 là các toán tử logic ≥, >, ≤ là các toán tử quan hệ, ! là toán tử 1 ngôi tính giai thừa, 𝑎𝑏𝑠 là toán tử 1. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Bài tp chương 2
Phn stack, queue
Bài 1. Thc hin liên tiếp các lnh sau đi vi mt stack rng, kết qu thu đưc s là gì? V hình
minh ha.
Push(3);
Push(5);
Pop()
Push(7);
Pop();
Push(8);
Pop();
Pop();
Bài 2. Cho mt danh sách móc ni vi cu tc mi nút như sau:
typedef struct node
{
float data;
struct node *pNext;
} NODE;
Hãy viết hàm reverse đ in ra ni dung danh sách móc ni theo th t ngưc
void reverse (NODE* pHead)
Gi ý: s dng stack
Bài 3. Tính giá tr các biu thc hu t sau, mô t rõ các bưc làm
a) 3 4 + 5 6 7 2
b) 3 4 + 2 ^ 6 4 2 /
c) 3 4 7 + % 2 3 /
d) 3 3 5 % ^ 9 5 2 / 6
Bài 4. Chuyn các biu thc trung t sau sang biu thc hu t
a) ( + ) ^( + 4 5 (9/3))
b) 3 + 4/(2 +  ) 7%(5 + )
c) 2 + (3 (4 (5^%)))
d) 3– (3^2 6%(5 + 9))
Bài 5. Định giá các biu thc hu t sau (các toán hng và toán t cách nhau 1 du cách, các toán
hng có th gm nhiu ch s)
là toán t 1 ngôi căn bc hai, , ,  các toán t logic,
, >, là các toán t quan h, ! là toán t 1 ngôi tính giai tha,  toán t 1 ngôi tính giá tr
tuyt đi
a) 15 2 3 + / 2 ^ 4 12 2 % +
b) 1 3 5 + +
2 ^ 4 12 6 / +
c) 2 1 27 3 2 ^ / + 3 % 4 +
d) 3 0 45 7 > 5 6   
e) 2 3 1 12 3 4 / + ^ %
f) 3 4 ! 4 5 + % 12 + 15 +
g) 1 16  5 + 4 6 + /
Bài 6. Chuyn các biu thc sau t dng trung t v dng hu t (các toán hng và toán t cách nhau
1 du cách, các toán hng có th gm nhiu ch s)
a) 3 + 5 ^ (12 / 6 + 1) 7 15 / 3 + 6
b)  (5 + 7) + 2 – 6 5 + 3 ^ 2 ^  / 2
c) 23 +
(6 + 5) / 9 ^ 2 cos(3 ) (chú ý
(
6 + 5
)
là tương đương vi
6 + 5
)
d)
(
3
)
 󰇡
(

)


(
4 <
)
󰇢
e) 5 ^ 2 ^ 3 ^ (4 9 – 5 / + 6) % (7 + + )
f) 
(
6 2 + 7
)
^ 2 /  + 5
Bài 7. Cài đt thut toán đnh giá biu thc trung t tng quát (thc hin trên tp các toán t trong
slide)
Bài 8. Cài đt thut toán chuyn biu thc dng trung t sang dng hu t
Bài 9. Bài toán kim tra cp ngoc trong biu thc có hp l
Mt biu thc có du ngoc là hp l nếu s du ngoc m phi bng s du ngoc đóng cùng loi.
Ví d:
Biu thc hp l
{
2 + 3
(
5/3^2
)
}
/
{
7
}
2 +
{
3
[
4 + 6
(
2/3^2
)
]}
Biu thc kng hp l
{3 + (6
[
5 2
)
}
4 + (6 (5 )
Hãy viết chương trình nhn đu vào là 1 biu thc, kim tra xem biu thc đó có hp l hay không.
Bài 10. Bài toán đi sánh th HTML
Trong mt văn bn HTML thì mi th m phi đi kèm vi 1 th đóng
<div class="header-right">
<form method="get" id="searchform" action="http://tinhocdaicuong.wordpress.com/" >
<div><label class="hidden" for="s">Tìm kiếm:</label>
<input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Go" /></div>
</form>
</div>
Hãy viết chương trình đc vào 1 file .html và kim tra xem trong file đó có th nào b li hay không
Bài 11. Cho mt Queue đưc lưu tr bi mt mng có 5 ô nh
Ban đu front =-1 rear = 1, thc hin liên tiếp các lnh sau
1. enQueue(5)
2. dequeue()
3. enQueue(3)
4. deQueue()
5. deQueue()
6. enQueue(9)
Hãy v trng thái ca queue sau mi bưc
Nếu Queue đưc t chc dng vòng tkết qugì khác sau khi ta cũng thc hin liên tiếp 6 lnh
trên, đng thi thc hin tiếp các lnh
7. enQueue(1)
8. deQueue()
9. enQueue(10)
Bài 12. Cài đt minh ha queue vòng dùng mng
Bài 13. So sánh ưu nhưc đim khi lưu tr queue bng cu trúc liên tiếp (mng) và cu trúc liên kết
(danh sách liên kết đơn)
Bài 14. Cài đt ng dng ca queue đ mô phng hàng đi khám bnh ti bnh vin như mô t
trong slide
4 7
front rear
| 1/3

Preview text:

Bài tập chương 2 Phần stack, queue
Bài 1. Thực hiện liên tiếp các lệnh sau đối với một stack rỗng, kết quả thu được sẽ là gì? Vẽ hình minh họa. Push(3); Push(5); Pop() Push(7); Pop(); Push(8); Pop(); Pop();
Bài 2.
Cho một danh sách móc nối với cấu trúc mỗi nút như sau: typedef struct node { float data; struct node *pNext; } NODE;
Hãy viết hàm reverse để in ra nội dung danh sách móc nối theo thứ tự ngược void reverse (NODE* pHead) Gợi ý: sử dụng stack
Bài 3. Tính giá trị các biểu thức hậu tố sau, mô tả rõ các bước làm
a) 3 4 + 5 6 7 ∗ 2 − ∗ − b) 3 4 + 2 ^ 6 4 ∗ 2 / − c) 3 4 7 + % 2 3 / −
d) 3 3 5 % ^ 9 5 2 − / 6 ∗ −
Bài 4. Chuyển các biểu thức trung tố sau sang biểu thức hậu tố
a) (𝑎 + 𝑏) ∗ 𝑐^(𝑑 + 4 − 5 ∗ (9/3))
b) 3 + 4/(2 + 𝑎 − 𝑐 ∗ 𝑏) − 7%(5 + 𝑐)
c) 2 + (3 − (4 ∗ (5^𝑎%𝑏)))
d) 3– 𝑎 ∗ (3^2 − 6%(5 + 9))
Bài 5. Định giá các biểu thức hậu tố sau (các toán hạng và toán tử cách nhau 1 dấu cách, các toán
hạng có thể gồm nhiều chữ số) √ là toán tử 1 ngôi căn bậc hai, 𝐴𝑁𝐷, 𝑁𝑂𝑇, 𝑂𝑅 là các toán tử logic,
≥, >, ≤ là các toán tử quan hệ, ! là toán tử 1 ngôi tính giai thừa, 𝑎𝑏𝑠 là toán tử 1 ngôi tính giá trị tuyệt đối
a) 15 2 3 + / 2 ^ 4 12 2 − % +
b) 1 3 5 + + √ 2 ^ 4 12 6 / − +
c) 2 1 27 3 2 ^ / + 3 % − 4 +
d) 3 0 ≥ 45 7 > 5 6 ≤ 𝐴𝑁𝐷 𝑁𝑂𝑇 𝑂𝑅 e) 2 3 1 12 3 4 ∗ / + ^ %
f) 3 4 ! 4 5 + % 12 + 15 − +
g) 1 16 − 𝑎𝑏𝑠 5 + 4 6 + /
Bài 6. Chuyển các biểu thức sau từ dạng trung tố về dạng hậu tố (các toán hạng và toán tử cách nhau
1 dấu cách, các toán hạng có thể gồm nhiều chữ số)
a) 3 + 5 ^ (12 / 6 + 1) – 7 ∗ 15 / 3 + 6
b) 𝑠𝑖𝑛 (5 ∗ 𝑎 + 7) + 2 – 6 ∗ 5 ∗ 𝑏 + 3 ^ 2 ^ 𝑐 / 2
c) 23 + 𝑎 − √ (6 ∗ 𝑏 + 5) / 9 ^ 2 ∗ cos(3 ∗ 𝑐) (chú ý √ (6 ∗ 𝑏 + 5) là tương đương với √6 ∗ 𝑏 + 5)
d) (3 ≥ 𝑎) 𝐴𝑁𝐷 �( 𝑐 ≥ 𝑑) 𝑂𝑅 �𝑁𝑂𝑇 (4 < 𝑑)��
e) 5 ^ 2 ^ 3 ^ (4 ∗ 9 – 5 / 𝑏 + 6) % (7 + 𝑎 + 𝑐)
f) 𝑎𝑏𝑠 (6 − 𝑏 ∗ 2 + 7 ∗ 𝑎) ^ 2 / 𝑐 + 5
Bài 7. Cài đặt thuật toán định giá biểu thức trung tố tổng quát (thực hiện trên tập các toán tử trong slide)
Bài 8. Cài đặt thuật toán chuyển biểu thức ở dạng trung tố sang dạng hậu tố
Bài 9. Bài toán kiểm tra cặp ngoặc trong biểu thức có hợp lệ
Một biểu thức có dấu ngoặc là hợp lệ nếu số dấu ngoặc mở phải bằng số dấu ngoặc đóng cùng loại. Ví dụ: Biểu thức hợp lệ
• {2 + 3 ∗ (5/3^2)}/{7 ∗ 𝑏}
• 2 + {3 ∗ [4 + 6 − (2/3^2)]}
Biểu thức không hợp lệ • {3 + (6 − [5 ∗ 2)} • 4 + (6 ∗ (5 − 𝑎)
Hãy viết chương trình nhận đầu vào là 1 biểu thức, kiểm tra xem biểu thức đó có hợp lệ hay không.
Bài 10. Bài toán đối sánh thẻ HTML
Trong một văn bản HTML thì mỗi thẻ mở phải đi kèm với 1 thẻ đóng Tìm kiếm:
Hãy viết chương trình đọc vào 1 file .html và kiểm tra xem trong file đó có thẻ nào bị lỗi hay không
Bài 11. Cho một Queue được lưu trữ bởi một mảng có 5 ô nhớ 4 7 front rear
Ban đầu front =-1rear = 1, thực hiện liên tiếp các lệnh sau 1. enQueue(5) 2. dequeue() 3. enQueue(3) 4. deQueue() 5. deQueue() 6. enQueue(9)
Hãy vẽ trạng thái của queue sau mỗi bước
Nếu Queue được tổ chức dạng vòng thì kết quả có gì khác sau khi ta cũng thực hiện liên tiếp 6 lệnh
trên, đồng thời thực hiện tiếp các lệnh 7. enQueue(1) 8. deQueue() 9. enQueue(10)
Bài 12. Cài đặt minh họa queue vòng dùng mảng
Bài 13. So sánh ưu nhược điểm khi lưu trữ queue bằng cấu trúc liên tiếp (mảng) và cấu trúc liên kết
(danh sách liên kết đơn)
Bài 14. Cài đặt ứng dụng của queue để mô phỏng hàng đợi khám bệnh tại bệnh viện như mô tả trong slide