用c++语言设计一个程序,写出满足以下要求的完整代码。编写一个类,实现简单的栈(提示:用链表结构实现)。数据的操作按先进后出(FILO)的顺序 成员函数为: void Put(int item); int Get(); 数据成员为: 一个指向链首的指针 链表结构为: struct Node{ int a; Node* next; }; 使用对象的过程为: Stack sta; sta.Put(10); sta.Put(12); sta.Put(14); cout<<sta.Get()<<endl; cout<<sta.Get()<<endl;
时间: 2023-05-13 19:06:11 浏览: 108
以下是满足要求的完整代码:
```
#include <stdio.h>
#include <stdlib.h>
struct Node {
int a;
struct Node* next;
};
class Stack {
public:
Stack() {
head = NULL;
}
void Put(int item) {
struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
new_node->a = item;
new_node->next = head;
head = new_node;
}
int Get() {
if (head == NULL) {
printf("Stack is empty!\n");
return -1;
}
int item = head->a;
struct Node* temp = head;
head = head->next;
free(temp);
return item;
}
private:
struct Node* head;
};
int main() {
Stack sta;
sta.Put(10);
sta.Put(12);
sta.Put(14);
printf("%d\n", sta.Get());
printf("%d\n", sta.Get());
printf("%d\n", sta.Get());
printf("%d\n", sta.Get());
return 0;
}
```
注意:在使用链表结构实现栈时,需要注意内存的分配和释放,避免内存泄漏。在本代码中,使用了malloc和free函数来分配和释放内存。
阅读全文