下面c程式中elsep nextq pq這一句是什麼意思

2021-03-30 15:30:54 字數 4202 閱讀 9984

1樓:向前向右

這是資料結構中的bai鍊錶,du鍊錶中包括乙個資料域zhi和乙個指標域daonext,內

p->next=q;表示

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

2樓:匿名使用者

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

p->next = q;p = q;

這是進棧 把q 排到 p 後面

在c語言鍊錶中,p=q->next和p->next=q->next有什麼區別?

3樓:匿名使用者

給你普及下指標的真諦:

假設兩個鍊錶節點的記憶體位址分別為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

兩值意義相差甚遠。

4樓:足球隊聯絡員

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

5樓:晚霞拉長了身影

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

c語言鍊錶中q->next=p;表示什麼意思?

6樓:南瓜蘋果

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

意思:使當前指標指向鍊錶的下乙個結點。

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

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

擴充套件資料鍊錶的特點:

1、n個節點離散分配

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

3、每乙個節點有乙個前驅節點和乙個後繼節點4、首節點沒有前驅節點,尾節點沒有後繼節點建立鍊錶前須知

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

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

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

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

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

7樓:匿名使用者

q-.next=p;

把p的位址賦給q的下乙個位址

while (q)

把q的下乙個位址賦給r;

p的位址賦給q的下乙個位址;

q的位址賦給p的位址

r的位址賦給q;

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

其實鍊錶要自己多畫畫就直到怎麼回事了

8樓:天雲一號

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

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

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

一般鍊錶的節點定義為:

struct node;

9樓:天地一孤鴻

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

10樓:匿名使用者

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

請問下面**中for (p = q->next; p != null; p = p->next)是什麼意思

11樓:水晶葡萄

p = q->next:初始化baip指標指向q的下一du個節點zhip = p->next:每次迴圈dao後p指標指向自己專的下乙個節點

p != null:p!=null的時候執行迴圈p==null退出循屬環

所以整個迴圈的意思就是遍歷q的下乙個節點開始的所有節點

12樓:聽不清啊

這是遍歷以q指向(有附加頭結點)的單向鍊錶的乙個迴圈。

c語言鍊錶排序問題,程式如下。t->next = p->next;p->next = q->next; q->next = t->next;是什麼意思?

13樓:匿名使用者

if (p->studentid > q->studentid) //當前p的id大於q的id,則交換兩個結點資料

14樓:匿名使用者

*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

r->next =p ?p:q;是什麼意思,c語言的語法,鍊錶

15樓:匿名使用者

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

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

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

如下**

r->next =p ?p:q;

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

16樓:

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

c語言中這段是什麼意思 q=head->next; //q指向頭結點 head->next=p; //頭結點指向p p->next=q;

17樓:匿名使用者

q=head->next; //q指向頭結點head->next=p; //頭結點指向pp->next=q;

把p放到head的下節點

c語言,這個鍊錶部分是什麼意思? head=p; q->next=p; q=p;

18樓:匿名使用者

q->next = p; 表示將節

來點源p加入到節點

baiq之後。

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

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

一般鍊錶的節點定義為dao:

struct node;

在c語言鍊錶中 q->next=p; q=p;是什麼意思?是不是q=p後q節點就消失了?

19樓:1223永遠不棄

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

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

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

請詳細解讀下面的c語言程式,請詳細解讀下面的C語言程式

for j 1 j 1 j 這個語句可以看出,j永遠只能等於1,而且迴圈只執行一遍。所以程式可以化簡為 include main i,j,t 1 for i 0 i 3 i t b i b 1 i printf d n t 當i 0時,t t b 0 b 1 0 1 b 0 0 1 0 1 當i 1...

麻煩幫忙解釋下下面這個C語言程式

指標運算p2 p1 是記憶體位址相減,再除以sizeof int int是指標型別 所以是100 4 25 p2,p1表示的是200,100的記憶體位址,而不是數值。數值的表示應該是 p1,p2 麻煩幫忙解釋一下這個c語言程式 新手。詳細一些。簡單易懂。謝謝 include int main rew...

C語言下面程式的執行結果是

x的值是每次來在執行迴圈體源第乙個語句進行賦值的。bai每個if語句都是du先加加,然zhi後再模2,模3,模7。全部條件滿足dao後,才會輸出x。計算的並非是x的原始值,而是計算的三次加加後的x的值。比如輸出28的時候,i的值是25,那麼此時x的值也是25。首先進行第乙個判斷,因為是前加加,所以對...