在學習順序棧的初始化過程當中,我模仿了以下代碼:
/* 初始化順序棧 */
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;
}