這是資料結構中的鏈式佇列的入隊代碼(是從網上拷貝下來的),我不明白為什么s的next域永遠都等于NULL,這樣不就不能跟其他結點連起來了嗎,
//插入新的隊尾元素
int InsertQueue(LinkQueue &Q, QElemType e)
{
QueuePtr s = (QueuePtr)malloc(sizeof(QNode));
if (!s)
{
cout << "插入失敗!" << endl;
return ERROR;
}
s->data = e;
s->next = NULL;
Q.rear->next = s;
Q.rear = s;
return OK;
}
uj5u.com熱心網友回復:
s->next= NULL;可以理解為初始化,s是鏈接到佇列的末尾,佇列的末尾的next不就是執行NULL嗎?樓主看一下佇列遍歷里可以通過判斷是否為NULL來確定是否到了末尾。
新的節點進來,就會把上一個s->next的NULL給覆寫了,就是用新的s覆寫上一個s->next
uj5u.com熱心網友回復:
新的結點連接到上一個結點的next域上,這個新結點的next又指向NULL。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/20731.html
標籤:C語言
上一篇:請教一個關于庫的原始碼管理的問題
