c語言關於連結串列操作問題這裡q next p q p和p

2021-04-28 02:25:54 字數 2693 閱讀 7706

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...