Bài 1.a
Nếu làm việc trên stack thì mình đưa ra code giải pháp sau:
Code:
/******************************************************
Đưa các dữ lịêu vào stack:
ví dụ: chen 14 vào mảng 1,2,3,4 thì trong stack sẽ là:1|2|14|3|4|14
cùng với biến k sẽ cho biết có bao nhiêu phần tử trong stack.
code sẽ được mô tả bằng ngôn ngữ tiếng việt./!\
******************************************************/
a[]; //là mảng phần tử đầu vào.
n ; //là số phần tử trong mảng a.
x; //là phần tử phải chèn vào.
k=0; //lúc đầu trong stack không có phần tử nào.
trong khi i=0 đến n-1{
push(a[i]);
k=k+1;//số pt trong stack được tăng thêm 1.
xét nếu a[i] là số chẳn thì
{
push(x);
k=k+1;
}
}
/*thực hiện việc đưa các pt từ trong stack vào mảng*/
cấp phát một mảng b động có k phần tử
thực hiện công việc sau:
trong khi stack chưa rổng thự hiện.
{
b[k-1]=pop();
k=k-1;
}
//Cuối cùng ta sẽ có mảng b là mảng kết quả.
Nếu làm theo giải pháp trên thì theo mình thay stack bằng queue sẽ tự nhiên hơn.