typedef struct Node {
date_t date;
Node* next;
};
class Liststack {
public:
Liststack()
{
top = nullptr;
}
~Liststack();
void push_back(date_t date);
bool isEmpty();
date_t pop();
date_t viewtop();
private:
Node* top;
};
Liststack:: ~Liststack()
{
while (top != nullptr)
{
Node* temp = top;
top = top->next;
delete temp;
}
}
void Liststack:: push_back(date_t date)
{
Node* new_list = new Node;
new_list->date = date;
new_list->next = top;
top = new_list;
}
bool Liststack::isEmpty()
{
return top == nullptr;
}
date_t Liststack::pop()
{
date_t temp = top->date;
Node* ptem = top;
top = top->next;
delete ptem;
return isEmpty()?-1:temp;
}
date_t Liststack::viewtop()
{
return isEmpty()?-1:top->date;
}
void stackx()
{
Liststack list;
while (true) {
cout << "\n栈操作:" << endl;
cout << "1. 压入元素" << endl;
cout << "2. 弹出元素" << endl;
cout << "3. 查看栈顶元素" << endl;
cout << "4. 获取栈的大小" << endl;
cout << "5. 判断栈是否为空" << endl;
int choice;
cout << "请选择操作:";
cin >> choice;
switch (choice)
{
case 1:
cout << "请输入插入元素" << endl;
date_t re;
cin >> re;
list.push_back(re);
break;
case 2:
cout << list.pop() << endl;
break;
case 3:
cout << list.viewtop() << endl;
break;
case 4:
break;
case 5:
list.isEmpty();
break;
default:
break;
}
}
}