<span style="font-size:24px;">//以下所有代码均经过上机测试,如有错误请指正
#include <stdio.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
typedef struct{
int *base;
int *top;
int stacksize;} stack;
int initStack(stack *s)//构造一个空栈
{
s->base = (int *)malloc(sizeof(int)*STACK_INIT_SIZE);
if(s->base == NULL)
{
printf("存储空间分配失败!");
exit(-1);
}
s->top = s->base;
s->stacksize = STACK_INIT_SIZE;
return 1;
}
//压栈的方法,i为需要压入栈顶的元素
int push(stack *s,int i)
{
//判断栈容量是否已经满了,如果已满,重新分配存储空间
if(s->top - s->base >= s->stacksize)
{
s->base = (int *)realloc(s->base,(s->stacksize + STACKINCREMENT)*sizeof(int));
}
if(s->base == NULL)
{
printf("内存分配失败!");
exit(-1);
}
*s->top+
使用两个栈模拟一个队列【C语言】
最新推荐文章于 2024-05-26 22:08:27 发布