天天看点

顺序栈代码的两种表示方式

在学习顺序栈的初始化过程当中,我模仿了以下代码:

/* 初始化顺序栈 */
Status InitStack(SqStack *S)
{
    (*S).base = (SElemType_Sq *)malloc(STACK_INIT_SIZE * sizeof(SqStack));
    if(!(*S).base) return ERROR;

   (*S).top = (*S).base;
    (*S).stacksize = STACK_INIT_SIZE;

    return OK;
}
           

在以上代码中,是使用

(*S).base

或者

(*S).top

或者

(*S).stacksize

的方式引用结构体成员的。但是在实际打代码的过程中,我发现这样的编辑效率并不高。于是,我尝试了这样一种引用方式,即

S->base

S->top

S->stacksize

,并且也成功运行了。

因此,在对顺序栈的操作过程中,我们可以直接使用指针引用的方式,即如下:

/* 初始化顺序栈 */
Status InitStack(SqStack *S)
{
    S->base = (SElemType_Sq *)malloc(STACK_INIT_SIZE * sizeof(SqStack));
    if(!S->base) return ERROR;

    S->top = S->base;
    S->stacksize = STACK_INIT_SIZE;

    return OK;
}
           

继续阅读