30/09/2018, 18:43
Hàm xử lý số mũ
Mình có 1 bài tập thế này: input vào là 12345 thì output ra là 1 danh sách liên kết 5->4->3->2->1.
Input là 1 chuỗi kí tự và hàm xử lý từ chuỗi sang linked list được viết như sau:
class digitList
{
public:
int digit; // giá trị của nút
digitList* nextDigit; // nút kế tiếp
public:
digitList():digit(0), nextDigit(NULL){}
digitList(int d, digitList *next):digit(d), nextDigit(next){}
}
digitList *digitize(char str[80]) {
digitList* L = 0;
digitList* node;
int i;
for(i = 0; i< strlen(str); i++) {
if(str[i] < '0' || str[i] > '9') break;
node = new digitList(str[i] - '0', L);
L = node;
}
return L;
}
Tuy nhiên cũng có trường hợp input đưa vào là 123^4 nên cần phải sửa lại hàm digitize. Nhưng cũng lại có trường hợp input là 123^2^3 nên phải sửa hàm digitize thành… hàm đệ quy. Mà tới đoạn này thì mình bí…
Bài liên quan