Download col10272 PDF

Titlecol10272
File Size1.1 MB
Total Pages127
Document Text Contents
Page 1

Cấu trúc dữ liệu và giải thuật

Bởi:
Khoa CNTT ĐHSP KT Hưng Yên

Page 63

57

double tinh(int, double, double);
int empty(struct stack *ps)
{
if (ps->top == -1)
return(TRUE);
else
return(FALSE);
}
void push(struct stack *ps, double x)
{
if(ps->top == TOIDA-1)
printf("%s", "stack bi day");
else
ps->nodes[++(ps->top)] = x;
}
double pop(struct stack *ps)
{
if(empty(ps))
printf("%", "stack bi rong");
else
return(ps->nodes[ps->top–]);
}
// Ham dinhtri: tinh mot bieu thuc postfix
double dinhtri(char bieuthuc[])
{
int c, vitri;
double toanhang1, toanhang2, tri;
struct stack s;
s.top = -1; // khoi dong stack
for(vitri = 0; (c = bieuthuc[vitri]) != ’\0’; vitri++)
if(lakyso(c)) // c la toan hang
push(&s, (double)(c-’0’));
else // c la toan tu
{
toanhang2 = pop(&s);
toanhang1 = pop(&s);
tri = tinh(c, toanhang1, toanhang2); // tinh ket qua trung gian
push(&s, tri);
}
return(pop(&s));
}
// Ham lakyso: kiem tra mot ky tu co phai la ky so hay khong
int lakyso(char kytu)
{
return(kytu >= ’0’ && kytu <= ’9’);
}
/* Ham tinh: tinh tri cua hai toan hang toanhang1 va toanhang2 qua
phep toan toantu */
double tinh(int toantu, double toanhang1, double toanhang2)
{
switch(toantu)

Page 64

58 CHƯƠNG 8. BÀI 7: DANH SÁCH TUYẾN TÌNH NGĂN XẾP (STACK)

{
case ’+’:
return(toanhang1 + toanhang2);
case ’-’:
return(toanhang1 - toanhang2);
case ’*’:
return(toanhang1 * toanhang2);
case ’/’:
return(toanhang1 / toanhang2);
case ’$’:
return(pow(toanhang1, toanhang2));
default:
printf("%s", "toan tu khong hop le");
exit(1);
}
}
void main()
{
char c, bieuthuc[TOIDA];
int vitri;
clrscr();
do
{
vitri = 0;
printf("\n\nNhap bieu thuc postfix can dinh tri: ");
while ((bieuthuc[vitri++] = getchar()) != ’\n’) ;
bieuthuc[–vitri] = ’\0’;
printf("%s%s%s%5.2f", "Bieu thuc ", bieuthuc, " co tri la: ", dinhtri(bieuthuc));
printf("\n\nTiep tuc khong ? (c/k): ");
c = getche();
} while(c == ’c’ || c == ’C’); }
+/Chuyển đổi cơ số
Đổi một số nguyên dạng thập phân sang nhị phân để sử dụng trong máy tính điện tử.
Ví dụ: Biểu diễn số 215 như sau :
1.27+ 1.26 + 0.25 + 1.24 + 0.23 + 1.22 + 1.21 + 1.20 = (215)10.
Thuật toán đổi một số nguyên dạng thập phân sang nhị phân là thực hiện phép chia liên tiếp cho 2 và

lấy số dư. Các số dư là các số nhị phân theo chiều ngược lại.

Page 126

120 Tham gia đóng góp

Module: "Thực hành cài đặt cây nhị phân� "
Được sử dụng như là: "Thực hành cài đặt cây nhị phân"
Tác giả: Khoa CNTT ĐHSP KT Hưng Yên
URL: http://voer.edu.vn/content/m13427/1.1/
Trang: 109
Bản quyền: Khoa CNTT ĐHSP KT Hưng Yên
Giấy phép: http://creativecommons.org/licenses/by/3.0/

Module: "Cây nhị phân và ứng dụng� "
Được sử dụng như là: "Cây nhị phân và ứng dụng"
Tác giả: Khoa CNTT ĐHSP KT Hưng Yên
URL: http://voer.edu.vn/content/m13395/1.1/
Trang: 111-116
Bản quyền: Khoa CNTT ĐHSP KT Hưng Yên
Giấy phép: http://creativecommons.org/licenses/by/3.0/

Module: "Thực hành cài đặt cây nhị phân tìm kiếm� "
Được sử dụng như là: "Thực hành cài đặt cây nhị phân tìm kiếm"
Tác giả: Khoa CNTT ĐHSP KT Hưng Yên
URL: http://voer.edu.vn/content/m13430/1.1/
Trang: 117
Bản quyền: Khoa CNTT ĐHSP KT Hưng Yên
Giấy phép: http://creativecommons.org/licenses/by/3.0/

Page 127

Cấu trúc dữ liệu và giải thuật
Cấu trúc dữ liệu và giải thuật�

Hoc lieu Mo Vietnam - Vietnam Open Educational Resources
Học liệu mở Việt Nam là hỗ trợ việc quản lý, tạo, lưu trữ tài liệu giáo dục hiệu quả.

Similer Documents