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

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

/* 初始化順序棧 */
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->baseS->topS->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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章