天天看點

順序棧代碼的兩種表示方式

在學習順序棧的初始化過程當中,我模仿了以下代碼:

/* 初始化順序棧 */
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;
}
           

繼續閱讀