在C語言連結串列中q next p q p是什麼意思?是不是q p後q節點就消失了

2021-03-30 15:30:49 字數 3872 閱讀 2117

1樓:1223永遠不棄

q->next = p;的意思是將p存放入q所指向的結點的指標域

q = p;q就指向了p所指的

q=p賦值語句後,q所指向的結點還是存在的,沒有q結點這一說法

c語言連結串列中q->next=p;表示什麼意思?

2樓:南瓜蘋果

q->next = p; 表示將節點p加入到節點q之後。

意思:使當前指標指向連結串列的下一個結點。

一般作用在資料結構中的單連結串列裡由應用,語句中的p一般指向一個結構體型別的資料,此型別的資料通常表示節點;結構體裡存放的一些資料和記錄下一個節點地址的指標變數next;這個next就好比鏈條一樣,連線著一個個節點。

->是一個整體,它是用於指向結構體、c++中的class等含有子資料的指標用來取子資料。換種說法,如果在c語言中定義了一個結構體,然後申明一個指標指向這個結構體,那麼要用指標取出結構體中的資料,就要用到「->」.

擴充套件資料連結串列的特點:

1、n個節點離散分配

2、每一個節點之間通過指標相連

3、每一個節點有一個前驅節點和一個後繼節點4、首節點沒有前驅節點,尾節點沒有後繼節點建立連結串列前須知

首節點:存放第一個有效資料的節點。

頭節點:在單連結串列的第一個結點之前附設一個結點,它沒有直接前驅,稱之為頭結點,頭結點的資料域可以不儲存任何資訊,指標域指向第一個節點(首節點)的地址。頭結點的作用是使所有連結串列(包括空表)的頭指標非空。

頭指標:指向頭節點的指標。

尾節點:存放最後一個有效資料的節點。

尾指標:指向尾節點的指標。

3樓:匿名使用者

q-.next=p;

把p的地址賦給q的下一個地址

while (q)

把q的下一個地址賦給r;

p的地址賦給q的下一個地址;

q的地址賦給p的地址

r的地址賦給q;

直到q->next的地址為0就結束迴圈

其實連結串列要自己多畫畫就直到怎麼回事了

4樓:天雲一號

q->next = p;  表示將節點p加入到節點q之後。

具體的意思可以參考如下的圖形表示:

節點q----->節點p

一般連結串列的節點定義為:

struct node;

5樓:天地一孤鴻

把p(是指標,表示地址)賦給q的地址域。

6樓:匿名使用者

前面沒有說明r ,p,q是指向什麼的指標啊,後面就難猜了

在c語言連結串列中,p=q->next和p->next=q->next有什麼區別?

7樓:匿名使用者

給你普及下指標的真諦:

假設兩個連結串列節點的記憶體地址分別為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

兩值意義相差甚遠。

8樓:足球隊聯絡員

我想了一個晚上,這是我的思考成果。

9樓:晚霞拉長了身影

p=q—>next的意思是把p結點接到q結點後面,p—>next=q—>next的意思是把q結點的下一個結點接到p結點後。

c語言,這個連結串列部分是什麼意思? head=p; q->next=p; q=p;

10樓:匿名使用者

q->next = p; 表示將節

來點源p加入到節點

baiq之後。

具體的意思可以du參考如下的圖形表示:

節點zhiq----->節點p

一般連結串列的節點定義為dao:

struct node;

c語言連結串列中p=q->next與q->next=p的區別

11樓:千尋無言

p=q->next 使p指向q->next,p的值被改變,變為q->next

q->next=p 使p的值賦給q->next,q->next的值被改變,變為p

兩者最後都指向同一地址,只是被改變的物件不同

12樓:匿名使用者

p=q->next是把q後面的連結串列連結到p的後面;

q->next=p是把p連結到q的後面;

希望好好意會。

c語言關於連結串列操作問題 這裡q->next=p;q=p;和p->next=p一樣?

13樓:匿名使用者

一個單一的名單呢? 如果一個單獨的列表,對 - >下一個到下一個節點,對 - >下一個= q->接下來是指在q>下一個指到下一個節點米(節點q)分配到p地址 - >下一個,這是下一個節點變為熔點

r->next =p ?p:q;是什麼意思,c語言的語法,連結串列

14樓:匿名使用者

?是c語言中的三元運算子,格式如下:

(邏輯表示式1)?表示式2:表示式3;

當邏輯表示式1為真時,整個三元運算表示式返回表示式2的結果,否則返回表示式3的結果。

如下**

r->next =p ?p:q;

?前應該是一個邏輯表示式,這裡的p可以視為if(p)即結構指標p不為null時,返回p所儲存的指標,否則返回q儲存的指標。

15樓:

當p不為null時,給r->next賦值為p,否則給r->next賦值為q。

資料結構單連結串列插入單連結串列中q->next=p->next和p->next=q

16樓:

這兩句是把q插入單連結串列的c語言描述語句。我們暫且假設p的後繼

為r,第一句的意思是把p的後繼,也就是r,賦給q的後繼,此時r既是p的後繼,也是q的後繼,也就是說q已經指向r了,此時再讓p的後繼指標指向q(也就是q賦給p的後繼)即可(這也正是第二句的意思),這樣就完成了q的插入。

你可以將「->」讀作「的」,那麼這兩句就可以讀作:把p的後繼賦給q的後繼,q賦給p的後繼。這樣讀就很容易理解了。

17樓:匿名使用者

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程式中else { p->next = q;p = q; } 這一句是什麼意思?

18樓:向前向右

這是資料結構中的bai連結串列,du連結串列中包括一個資料域zhi和一個指標域daonext,內

p->next=q;表示

p的next域指向q,p=q;表示p和q指向同一容個節點;本打算畫個圖給你看,電腦上不太會畫。你找本資料結構的書看看吧,這個是尾插法建立單連結串列的演算法。h = p = q;這句話先將頭指標h和尾指標指向q。

19樓:匿名使用者

這是用c寫的資料結構——棧

p->next = q;p = q;

這是進棧 把q 排到 p 後面

c語言連結串列問題,c語言連結串列的問題

連結串列必須知道頭指標在哪第一個紅圈是初始化指標 因為你剛開始定義連結串列指標的時候指標指向的是隨機的 所以只能初始化 第二個紅圈是第一次給連結串列分配空間 如果頭指標為空就把連結串列指標給頭指標 這倆個語句確實只執行一次 但我沒理解你話的意思 你的理解當然不對了。前一個頭 head 尾 tail ...

在C語言中,什麼是連結串列呀,C語言中連結串列怎麼定義?

呵呵 ls回答的太全面了 我簡單概括一下吧 簡單的說,連結串列就是一串儲存資料的鏈式結構。鏈式的優點在於,每個資料之間都是相關聯的,你如果拿掉其中一個資料,整個連結串列就斷了,需要重新把斷開的部分連上,就像一條鎖鏈一樣。而你要新增一個資料,也要先斷開一個鎖鏈,把資料加進去,再重新連上。就是這麼簡單!...

c語言程式設計連結串列題,c語言程式設計連結串列題

include include include typedef struct student message stu struct student message static stu head null 建立一個節點,並賦予相應的數值 stu create link node char const...