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。首先進行第乙個判斷,因為是前加加,所以對...