Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
7
Добавлен:
28.06.2014
Размер:
1.13 Кб
Скачать
// ---------------------------------------------------------------------------


#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;
};
Соседние файлы в папке Курсовой проект