是一组相同类型数据的集合,并且拥有后进先出的特点,所有的操作都在堆栈顶端进行。
Init 创建一个空堆栈
Push 把数据压入堆栈顶端
Pop 从堆栈顶弹出数据
Top 从栈顶取数据
Empty 判断堆栈是否为空堆栈,是则返回true,否则返回false
Full 判断栈是否为满,是则返回true,否则返回false
用数组实现堆栈:
typedef struct st_stack{
int size;
int *data;
int top;
}T_Stack;
int StackInit( T_Stack *ptStack, int *data, int size)
{
ptStack->size = size;
ptStack->data = data;
ptStack->top = 0;
return 0;
}
int StackPush( T_Stack *ptStack, int data )
{
if( ptStack->top == ptStack->size )
{
return -1;
}
ptStack->data[ptStack->top++] = data;
return 0;
}
int StackPop( T_Stack *ptStack, int *data )
{
if( ptStack->top == 0 )
{
return -1;
}
*data = ptStack->data[--ptStack->top];
return 0;
}
int StackTop( T_Stack *ptStack, int *data )
{
if( ptStack->top == 0 )
{
return -1;
}
*data = ptStack->data[ptStack->top - 1];
return 0;
}
int StackIsEmpty( T_Stack *ptStack )
{
return ( ptStack->top == 0 );
}
int StackIsFull( T_Stack *ptStack )
{
return ( ptStack->top == ptStack->size );
}
动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看数据结构视频教程哦!
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54