编写一个程序实现顺序栈的各种基本运算
时间: 2023-04-25 21:04:16 浏览: 108
顺序栈的基本运算有:入栈、出栈、获取栈顶元素、判断栈是否为空、获取栈的大小等。下面是一个简单的 Python 程序实现顺序栈的各种基本运算:
```python
class SeqStack:
def __init__(self):
self.stack = []
def push(self, item):
self.stack.append(item)
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
return None
def top(self):
if not self.is_empty():
return self.stack[-1]
else:
return None
def is_empty(self):
return len(self.stack) == 0
def size(self):
return len(self.stack)
```
使用时可以实例化一个 SeqStack 对象,然后调用对应的方法进行操作。
相关问题
编写一个程序实现顺序栈的基本运算
实现顺序栈的基本运算,需要定义一个数组和一些基本操作,包括:初始化栈、判断栈是否为空、获取栈顶元素、入栈、出栈等。
以下是实现顺序栈的基本运算的步骤:
1. 定义一个数组来存储栈中的元素。
2. 定义一个变量 top 来指示栈顶位置,初始值为 -1。
3. 初始化栈:将 top 设为 -1,表示栈为空。
4. 判断栈是否为空:如果 top 的值为 -1,则说明栈为空。
5. 获取栈顶元素:返回数组中 top 位置的元素。
6. 入栈:将元素插入到数组中 top+1 的位置,然后将 top 值加 1。
7. 出栈:将数组中 top 位置的元素弹出,然后将 top 值减 1。
以下是示例代码:
```
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct {
int data[MAXSIZE];
int top;
} SqStack;
// 初始化栈
void InitStack(SqStack *s) {
s->top = -1;
}
// 判断栈是否为空
int IsEmpty(SqStack s) {
return s.top == -1 ? 1 : 0;
}
// 获取栈顶元素
int GetTop(SqStack s) {
if (IsEmpty(s)) {
printf("Stack is empty!\n");
return -1;
}
return s.data[s.top];
}
// 入栈
int Push(SqStack *s, int x) {
if (s->top == MAXSIZE - 1) {
printf("Stack is full!\n");
return 0;
}
s->top++;
s->data[s->top] = x;
return 1;
}
// 出栈
int Pop(SqStack *s, int *x) {
if (IsEmpty(*s)) {
printf("Stack is empty!\n");
return 0;
}
*x = s->data[s->top];
s->top--;
return 1;
}
```
编写一个程序实现顺序栈的各种基本运算。
好的,您可以参考以下代码实现:
```python
class Stack:
def __init__(self):
self.data = []
def is_empty(self):
return len(self.data) == 0
def push(self, item):
self.data.append(item)
def pop(self):
if self.is_empty():
return None
else:
return self.data.pop()
def size(self):
return len(self.data)
def top(self):
if self.is_empty():
return None
else:
return self.data[-1]
```
这个代码实现了顺序栈的基本运算,包括初始化、判空、入栈、出栈、获取栈顶元素等操作。您可以根据实际需求进行调用。
阅读全文