编写进栈函数push(); (2)编写出栈函数pop(); (3)编写判断栈满和栈空的函数 (4)遍历栈,并输出元素。
时间: 2024-05-10 11:19:52 浏览: 49
好的,我可以回答您关于栈的问题。
1. 进栈函数 push() 可以这样编写:
```
void push(int element, int *stack, int *top, int size)
{
if (*top == size - 1) { // 栈已满
printf("Stack is full\n");
} else {
*top = *top + 1;
stack[*top] = element;
}
}
```
2. 出栈函数 pop() 可以这样编写:
```
int pop(int *stack, int *top)
{
int element;
if (*top == -1) { // 栈为空
printf("Stack is empty\n");
return -1;
} else {
element = stack[*top];
*top = *top - 1;
return element;
}
}
```
3. 判断栈是否满和栈是否空的函数可以这样编写:
```
int is_full(int *top, int size)
{
if (*top == size - 1) {
return 1;
} else {
return 0;
}
}
int is_empty(int *top)
{
if (*top == -1) {
return 1;
} else {
return 0;
}
}
```
4. 遍历栈并输出元素的函数可以这样编写:
```
void traverse(int *stack, int top)
{
int i;
printf("Stack elements:\n");
for (i = top; i >= 0; i--) {
printf("%d\n", stack[i]);
}
}
```
希望这些函数可以帮助您解决需要用栈来实现的问题。
阅读全文