void LQ_In(LinkQueue *Q, ElemType e)
//
{
//
/********** Begin *********/
QNode *p=(QNode *)malloc(sizeof(QNode));//重中之重的一步
p->data=e;
p->next=NULL;
Q->rear->next=p;
Q->rear=p;
/********** End **********/
}
为什么对于p要写那么一大串(QNode *p=(QNode *)malloc(sizeof(QNode))?
先分析;QNode *的意思是p是类型为QNode的指针,malloc是开辟的意思,sizeof(QNode)是开辟的大小。这样子开辟是因为p是一个指向一个空的节点的指针了,不再是单纯的一个指针。所以这一步至关重要。
有些时候,我们只需要一个QNode类型的指针,则不需要如此细致的定义。