ứng dụng cấu trúc dữ liệu stack

13 552 0
ứng dụng cấu trúc dữ liệu stack

Đ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

) Ứng dụng đổi số Cấu trúc liệu ngăn xếp #define Maxlength 16 struct Stack { int E[Maxlength]; int top; } struct Stack S; • Giải thuật: void Convert(int n) { int r; while (n!=0) { r= n%2; Push(s, r); n= n/2; } cout đưa vào stack : • Duyệt tiếp, gặp tốn tử trừ (-) –> lấy toán hạng ra, thực – = Đẩy vào stack : • Duyệt tiếp, gặp toán hạng 7, –> đưa vào stack : • Duyệt tiếp, gặp tốn tử cộng (+) –> Lấy ra, thực + = Đẩy vào stack : • Duyệt tiếp, gặp toán tử nhân (*) –> lấy ra, thực * = 24 Đẩy 24 vào stack : • Duyệt tiếp, gặp tốn hạng –> cho vào stack : • Duyệt tiếp, gặp tốn tử trừ (-) –> lấy 24 ra, thực 24 – = 18 Đẩy 18 vào stack : • Duyệt tiếp, gặp tốn tử nhân (*) –> lấy 18 ra, thực * 18 = 54 Đẩy vào stack : • Hết biểu thức, lấy kết cuối stack Kết : 54 Dưới phần cài đặt C# : Code using System; using System.Collections.Generic; namespace StackDemo3 { class Program { static void Main(string[] args) { 10 11 Stack S = new Stack(); 12 string[] Arr; 13 //Nhập vào biểu thức 14 Console.Write(“Nhap bieu thuc hau to : “); 15 //Tách chuỗi thành toán hạng toán tử 16 Arr = Console.ReadLine().Replace(” “, ” “).Split(‘ ‘); 17 //Duyệt biểu thức 18 try 19 { //mảng chứa toán hạng toán tử 20 foreach (string s in Arr) 21 { 22 float a = 0, b = 0; 23 switch (s) 24 { //stack chứa kết //2 biến chứa toán hạng 25 //nếu toán tử 26 case “+”: 27 //lấy số khỏi stack 28 a = S.Pop(); 29 b = S.Pop(); 30 //tính tốn đẩy vào stack 31 S.Push(a + b); 32 break; 33 case “-“: 34 //lấy số khỏi stack 35 //a lấy trước nên a số trừ 36 a = S.Pop(); 37 b = S.Pop(); 38 //tính tốn đẩy vào stack 39 S.Push(b – a); 40 break; 41 case “*”: 42 //lấy số khỏi stack 43 a = S.Pop(); 44 b = S.Pop(); 45 //tính toán đẩy vào stack 46 S.Push(a * b); 47 break; 48 case “/”: 49 //lấy số khỏi stack 50 //a lấy trước nên a số chia 51 a = S.Pop(); 52 b = S.Pop(); 53 //tính tốn đẩy vào stack 54 S.Push(b / a); 55 break; 56 default: 57 //nếu tốn hạng đẩy vào stack 58 S.Push(int.Parse(s)); 59 break; 60 } 61 } 62 } 63 catch (Exception) 64 { 65 Console.Clear(); 66 Console.WriteLine(“Loi qua trinh xu ly Ket thuc chuong trinh.”); 67 Console.ReadLine(); 68 return; 69 } 70 //in kết 71 Console.Clear(); 72 if (S.Count > 0) Console.WriteLine(“Ket qua : {0}”, S.Pop()); 73 Console.ReadLine(); 74 75 76 } } } ... 10 sang Stack Ý tưởng : Stack cấu trúc liệu truy xuất theo nguyên lý LIFO, nghĩa vào sau trước Một dãy phần tử vào stack theo thứ tự lấy khỏi stack theo thứ tự ngược lại Quá trình đổi số Stack. .. 1, tìm hiểu Stack phương pháp cài đặt C# Trong phần này, tìm hiểu ứng dụng Stack thơng qua toán đơn giản : đổi số tính tốn biểu thức hậu tố Đây hai ví dụ điển hình cho việc sử dụng Stack Để tiện... dư R vào Stack • B2 Gán Q cho N • B3 Lặp lại B1, B2 N=0 • B4 Lấy phần tử R khỏi stack stack rỗng Dưới phần cài đặt : Code using System; using System.Collections.Generic; namespace StackDemo2

Ngày đăng: 28/03/2016, 01:23

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

  • Đang cập nhật ...

Tài liệu liên quan