1樓:匿名使用者
一個單一的名單呢? 如果一個單獨的列表,對 - >下一個到下一個節點,對 - >下一個= q->接下來是指在q>下一個指到下一個節點米(節點q)分配到p地址 - >下一個,這是下一個節點變為熔點
在c語言連結串列中,p=q->next和p->next=q->next有什麼區別?
2樓:匿名使用者
給你普及下指標的真諦:
假設兩個連結串列節點的記憶體地址分別為aaaa和bbbb,節點內偏移4位元組處儲存名為next的指標,
p = 0xaaaa,q=0xbbbb,這說明p和q分別指向這兩個節點。
p->next是記憶體aaae處的內容,q->next是記憶體bbbf處的內容(假設為cccc)
那麼, p = q->next 即p=0xcccc
p->next = q->next,即將記憶體aaae處的內容改為cccc
兩值意義相差甚遠。
3樓:足球隊聯絡員
我想了一個晚上,這是我的思考成果。
4樓:晚霞拉長了身影
p=q—>next的意思是把p結點接到q結點後面,p—>next=q—>next的意思是把q結點的下一個結點接到p結點後。
c語言連結串列中p=q->next與q->next=p的區別
5樓:千尋無言
p=q->next 使p指向q->next,p的值被改變,變為q->next
q->next=p 使p的值賦給q->next,q->next的值被改變,變為p
兩者最後都指向同一地址,只是被改變的物件不同
6樓:匿名使用者
p=q->next是把q後面的連結串列連結到p的後面;
q->next=p是把p連結到q的後面;
希望好好意會。
c語言連結串列排序問題,程式如下。t->next = p->next;p->next = q->next; q->next = t->next;是什麼意思?
7樓:匿名使用者
if (p->studentid > q->studentid) //當前p的id大於q的id,則交換兩個結點資料
8樓:匿名使用者
*t = *p; //講p賦給t
*p = *q; //講q賦給p
*q = *t; //講t賦給q
//上面
三行就是交換p和q的,按你程式的意思,studentid更小的在前面,大的往後放。
//其實這個迴圈就是經典的氣泡排序原理。
t->next = p->next; //將p的下一個節點交給t的下一個節點。
p->next = q->next; //將q的下一個節點交給p的下一個節點。
q->next = t->next; //將t的下一個節點交給q的下一個節點。
//這是交換p和q的下一個節點,修改next值。
//結構體可以直接賦值的,也就是第一個三行交換,不僅交換了數值studentid,應該也同時交換了next指標,所以後面三行其實是還原next指標的,否則上面的for迴圈,就換亂了。簡單的做法,應該可以直接交換studentid。就不需要考慮指標連結的順序了。
t->studentid = p->studentid;
p->studentid = q->studentid;
q->studentid = t->studentid;
//直接交換值studentid
資料結構單連結串列插入單連結串列中q->next=p->next和p->next=q
9樓:
這兩句是把q插入單連結串列的c語言描述語句。我們暫且假設p的後繼
為r,第一句的意思是把p的後繼,也就是r,賦給q的後繼,此時r既是p的後繼,也是q的後繼,也就是說q已經指向r了,此時再讓p的後繼指標指向q(也就是q賦給p的後繼)即可(這也正是第二句的意思),這樣就完成了q的插入。
你可以將「->」讀作「的」,那麼這兩句就可以讀作:把p的後繼賦給q的後繼,q賦給p的後繼。這樣讀就很容易理解了。
10樓:匿名使用者
q->next=p->next是指 p的next指標指向的地址賦值給 q的next指標.
p->next = q 是指 q的地址賦值給p的next指標.在q->next在右邊就不對了,p->next的地址覆蓋了q,q本來指向的地址就找不到了。
q是一個指標變數,你可以理解為q的記憶體地址,q->next 指向q的下一個節點記憶體地址。
c語言單連結串列中l->next = p 和 p = l->next的區別? 10
11樓:
l->next = p l->next指向p指向的節點。
p = l->next p指向l->next指向的節點。
在c語言連結串列中 q->next=p; q=p;是什麼意思?是不是q=p後q節點就消失了?
12樓:1223永遠不棄
q->next = p;的意思是將p存放入q所指向的結點的指標域
q = p;q就指向了p所指的
q=p賦值語句後,q所指向的結點還是存在的,沒有q結點這一說法
有關C語言資料結構單連結串列的問題,關於C語言版的資料結構問題 建立單連結串列
因為malloc 有可能出現分配空間失敗的情況,當分配失敗時,malloc 將返回null,而只有在malloc 分配成功的情況下,對為head分配的空間進行操作才有意義,if語句就是檢查head的空間有沒有分配成功,如果分配失敗,就會直接退出程式,而不會執行 head next null 我分別回...
c語言連結串列排序問題,程式如下。t nextp next p nextq next q nextt next是什麼意思
if p studentid q studentid 當前p的id大於q的id,則交換兩個結點資料 t p 講p賦給t p q 講q賦給p q t 講t賦給q 上面 三行就是交換p和q的,按你程式的意思,studentid更小的在前面,大的往後放。其實這個迴圈就是經典的氣泡排序原理。t next p...
C語言連結串列刪除的問題不知道怎麼回事連結串列刪不掉求教
include include struct node 這裡 引數要使用引用否則當刪除連結串列頭的節點時會造成錯誤 else if p return q next p next free p 該函式用於釋放整個連結串列 int main display head del head display h...