Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовой проект / Post
.cpp// ---------------------------------------------------------------------------
#include "Struct.cpp"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
class Post {
public:
const list<ItemD> convert(list<ItemD>input);
};
const list<ItemD> Post::convert(list<ItemD>input) {
list<ItemD>output;
output.clear();
stack<ItemD>st;
ItemD tmp;
for (list<ItemD>::iterator it = input.begin(); it != input.end(); it++) {
tmp = (*it);
switch(tmp.type) {
case 1: case 5: st.push(tmp); break;
case 6: case 7: output.push_back(tmp); break;
case 3: case 4:
while ((!st.empty()) && (tmp.type <= st.top().type)) {
ItemD tmp1 = st.top();
st.pop();
output.push_back(tmp1);
}
st.push(tmp); break;
case 2:
while ((!st.empty()) && (st.top().type != 1)) {
ItemD tmp1 = st.top();
st.pop();
output.push_back(tmp1);
}
if ((!st.empty()) && (st.top().type == 1))st.pop(); break;
}
}
while (!st.empty()) {
tmp = st.top();
output.push_back(tmp);
st.pop();
}
return output;
};
Соседние файлы в папке Курсовой проект