1. 程式人生 > >資料結構程式設計注意事項

資料結構程式設計注意事項

佇列、連結串列、棧的初始化要傳引數無返回值就要現在主函式內先定義再申請空間再傳遞引數。不能定義引數後,不申請空間就直接傳遞引數,然後在初始化函式中再申請空間。

例如:

佇列初始化傳引數無返回值正確程式碼:

int main()

{

int i=0;

int number;

PQUEUE Q;//定義變數引數

   Q=(PQUEUE)malloc(sizeof(QUEUE));//申請空間

InitQueue(Q);//引數傳遞

return 0;

}

void InitQueue(PQUEUE pQ)//初始化函式

{

if(pQ==NULL)

{

printf("動態記憶體分配失敗!");

exit(-1);

}

PNODE q=(PNODE)malloc(sizeof(NODE));

if(q==NULL)

{

printf("動態記憶體分配失敗!");

exit(-1);

}

q->pNext=NULL;

    pQ->front=pQ->rear=q;

}

佇列初始化傳引數無返回值錯誤程式碼:

int main()

{

int i=0;

int number;

PQUEUE Q;// 定義變數引數

InitQueue(Q);// 引數傳遞

return 0;

}

void InitQueue(PQUEUE pQ)//初始化函式

{

pQ=(PQUEUE)malloc(sizeof(QUEUE));// 申請空間

if(pQ==NULL)

{

printf("動態記憶體分配失敗!");

exit(-1);

}

PNODE q=(PNODE)malloc(sizeof(NODE));

if(q==NULL)

{

printf("動態記憶體分配失敗!");

exit(-1);

}

q->pNext=NULL;

    pQ->front=pQ->rear=q;

}