个数 value为欲压栈的数值 *返 回 值:空 ********************************************************/ void seqstack_push(malloc_seqstack *p_stack, int length, eletype value) { eletype *p_tmp = p_stack->p_bottom; if (seqstack_full(p_stack)) { printf("栈已满,系统将为其增加空间!\n"); p_stack->p_bottom = (eletype *)realloc(p_stack->p_bottom, length*sizeof(eletype)); if (!p_stack->p_bottom) { free(p_tmp); exit(-1); } p_stack->stack_size = length; } (p_stack->p_top)++; *(p_stack->p_top) = value; return; } /******************************************************** *函数名称:seqstack_pop *函数功能:出栈 *入口参数:p_stack为指向结构体指针 *返 回 值:value为出栈数据 ********************************************************/ eletype seqstack_pop(malloc_seqstack *p_stack) { eletype value = 0; if (seqstack_empty(p_stack)) { printf("栈已空!\n"); exit(-1); } value = *(p_stack->p_top--); return value; } /******************************************************** *函数名称:seqstack_destroy *函数功能:销毁栈 *入口参数:p_stack为指向结构体指针 *返 回 值:空 ********************************************************/ void seqstack_destroy(malloc_seqstack *p_stack) { free(p_stack->p_bottom); free(p_stack); p_stack->stack_size = 0; p_stack->p_bottom = NULL; p_stack->p_top = NULL; p_stack = NULL; return; } /***********************程序结束************************/
程序运行结果:

栈越界时提示的错误信息:

将C语言梳理一下,分布在以下10个章节中:
|