联博统计接口(326681.com)_栈的顺序表的实现
发表时间:2020-12-19 浏览量:13
原创
栈的顺序表的实现
栈的顺序表的实现
# 栈的顺序表的实现
#include<stdio.h>
#include<stdio.h>
typedef int STDataType;
//顺序表结构实现
typedef struct stack
{
STDataType* _data;
int _size;
int _capacity;
}stack;
void stackInit(stack* st)
{
if (!st)return;
st->_data = NULL;
st->_size = 0;
st->_capacity = 0;
}
void checkCapacity(stack* st)
{
if (st->_size == st->_capacity)
{
int newCapacity = st->_capacity == 0 ? 1 : 2 * st->_capacity;
st->_data = (STDataType*)realloc(st->_data, sizeof(STDataType)*newCapacity);
st->_capacity = newCapacity;
}
}
void stackPush(stack* st, STDataType val)
{
if (st == NULL)return;
checkCapacity(st);
//尾插
st->_data[st->_size++] = val;
}
//出栈
void stackPop(stack* st)
{
if (!st)return;
//尾删
if (st->_size>0)
st->_size--;
}
STDataType stackTop(stack* st)
{
return st->_data[st->_size - 1];
}
void test()
{
stack s;
stackInit(&s);
stackPush(&s, 1);
stackPush(&s, 2);
stackPush(&s, 3);
stackPush(&s, 4);
for(int o = 0; o < 4; ++o)
{
printf("%d ", stackTop(&s));
stackPop(&s);
}
printf("\n");
}
int main()
{
test();
return 0;
}
©著作权归作者所有:来自51CTO博客作者赶路人丶的原创作品,如需转载,请注明出处,否则将追究法律责任
好知识,才气预见未来
赞赏
0人进行了赞赏支持
,,www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。
数据结构 菜鸟营
0
珍藏
上一篇:顺序表和链表的优缺点