p head next與head next p的區別

時間 2021-09-01 21:19:19

1樓:匿名使用者

第一句是p指向head的下一個節點

第二句是head的下一個節點指向p指向的節點

2樓:貊闊眭靖柔

head->next=p

在連結串列中,頭結點指向的下一個結點賦值為p;

head=p

在連結串列中,將頭指標設定為p;

前一個頭結點不變;後一個是賦值,會改變頭結點

3樓:戚巨集碩

typedef struct node

linklist;

linklist * head;首先這裡的struct node的型別=linklist,前面typedef的作用。然後在用linklist定義了個指標head,相當於struct node *head,那麼指標head就可以引用這個結構體的成員變數。

head.next指的是指指標變數head呼叫結構體變數成員next。next就是下一個結點的地址。

typedef struct node

node;

struct linklist

我把你老師定義的稍微改了下,在給你說明下。

head->pnext指的是結構體linklist中成員為struct linklist的指標head,他呼叫結構體node中的成員pnext,pnext為下一結點的地址。注意型別node與struct node型別一樣,只是換了個名字而已,然後在用node定義了個名字為head的指標變數,head的作用為可以呼叫node型別(struct node型別),但是呼叫後的任然屬於結構體linklist的成員。

其實定義個連結串列的表示方法有千萬種,其核心都是一樣,你們老師只不過換了種表示方法而已,自己好好琢磨下吧,希望我說的對你能有幫助。

資料結構中r=head; p=head->next; 代表什麼意思? 20

4樓:浪子惟安

是連結串列的資料結構

連結串列頭head,表頭後接的第一個節點head->next第一句話的意思是把表頭地址賦值給r

第二句話把表頭後的一個節點地址賦值給p

5樓:岔路程式緣

r=head;——讓指標r指向頭結點

p=head->next;——讓指標p指向頭結點的下一個結點,也就是第二個結點

p->next=p->next->next 和p=p->next有什麼區別

6樓:leader暗靈

假如原來是這樣一個鏈……a->b->c……(即a、b、c是三個連續元素),指標p指向a,那麼p->next就是b,p->next->next就是c,經過p->next=p->next->next,就變成a的下一個直接指向c,即:a->c

所以p=p->next就是更新p(假設p->a)的指標域為b的地址即p->b

c++ 連結串列中p=head, p->next=s , s=p的含義?

7樓:匿名使用者

首先,你要理解p指標的含義。

根據你的描述,p指標應該是連結串列內遍歷各節點的指標,那麼這個指標是不停移動的。

而head指標永遠指向連結串列的頭結點。

開始,要讓自己宣告的指標p指向連結串列的頭結點。所以有p=head;

進行完這個操作後,p指標和head指標同時指向了連結串列的頭結點。

下面,我們要向連結串列中插入一個節點,那麼這個新插入的節點是什麼呢,就是指標s指向的節點。因為連結串列中每個節點的next指標指向了下一個節點的地址,因此有

p->next=s;

這句話的意思是,讓s指標指向的節點連線在p指標指向節點的後面。

最後,我們又要插入新的節點,那麼,必定是要插入在剛才s節點之後的位置,因此,需要移動p指標到剛才s指標指向的節點的位置,所以有

p=s;

記住,連結串列中,永遠只有一個指標移動,這個指標就是p指標。

8樓:enjoy冰心玉壺

我想上面的**應該是在建立連結串列時需要的。比如有下面的資料結構:

struct node

;連結串列中一般都有頭結點,就是head,其中可以存放資料,也可以不存放資料。在動態建立連結串列的過程中,肯定需要定義一個新的結點,比如pnext。

pnext=(struct node *)malloc(sizeof(struct node));

這時候應該將頭結點head的next域指向該新的結點。但是head一般不移動,因為移動後就找不到頭結點了。所以定義一個指標p,p在開始時指向頭結點,就是

p=phead;

建立完新的結點後,p的next域指向該新結點。由於下一次還要建立新節點,所以p要再指向現在已經建立好的新結點。這樣下一次建立新的結點時才能正確指向該節點。

不知道表達的好不好,把源程式複製在下面吧,應該看一下程式就懂了。

#include

#include

struct node

;struct node *create_list();

void display_list(struct node *p);

int main()

struct node *create_list()

return phead;

}void display_list(struct node *p)

}程式沒有錯誤的,可以執行,可以看一下create_list()函式,是建立連結串列,包含你想知道的問題,建立連結串列是一個迴圈結構。把執行結果也複製一下

p->next=p;和p=p->next;有什麼區別?

9樓:匿名使用者

p->next=p表示節點p的下一個節點還是p,如果連結串列只有p節點,那麼這樣就變成了一個迴圈連結串列

p=p->next表示修改指標p的位置,把p指向原來的下一個節點

10樓:守望者

p為指標,第一個指連結串列中p的下一個元素為p,也就是自己。第二個p指向p的下一個元素。

11樓:匿名使用者

假設p->next型別也是和p是同一種指向結構s的指標指標p指向的地址假設為1000h

p->next指向的地址假設為2000h

注:它們倆的地址一般也是由malloc分配,所以並不是由地址大小來區分前後關係,主要還是由你的程式來定義他們之間的資料結構的

p->next = p;

p=p->next;

要說明白他們之間的區別得看你的程式啦.....--__--b

12樓:匿名使用者

1、連結串列中p的下一個元素為p,也就是自己。2、p等於p的下一個元素。

13樓:匿名使用者

此處可理解為連結串列,p->next就是p指標的下一指標空間,即在連結串列中p指標節點下一節點;p->next=p;此語句即時將p指標地址賦給p的下一個節點,相當於將 p->next 節點往前移動,本來取p->next節點的下一個節點是 p->next->next ,現在實際上變成取 p->next 了;而 p=p->next ;此語句是將p節點往後移動一個節點,原本取p節點的下一節點是p->next,現在實際上是取p->next->next了,相當於p節點往後移動,希望能夠幫到你!

while(p)代表什麼意思,其中定義 *p=head->next

14樓:匿名使用者

p明顯是個指標,while(p)就是說指標如果有指向,就執行while下的語句,如果是0,也就是null,指標沒有指向任何地址,也就是空指標。*p=head->next 這個可能是是樹之類的資料結構,你沒描述清楚,我也猜不出是什麼。

15樓:匿名使用者

while(p) 如果p(指標地址)不為空就進入 返回到while(p)繼續判斷

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

16樓:匿名使用者

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

把p放到head的下節點

子彈與木塊,子彈與木塊

年年歲歲題相似,年年歲歲人不同。幾年前考我的問題。設子彈初始速度v,木塊阻力f,子彈質量m,每個木塊厚度s易得出 3fs 1 2 mvv 即2分之一m乘以v的平方設穿出第一個木塊後的速度為 a,穿出第二個木塊後的速度為b,由動能守恆定律 fs 1 2 mvv 1 2 maa 將fs代入第一個式子,可...

游泳與健康,游泳與健康

1 游泳對人體健康的好處 游泳不僅同許多體育專案一樣,對多種慢性疾病有一定的 作用,而且還有其獨特的 價值,其主要原因有以下幾點 l 游泳是在陽光 空氣 冷水三浴兼併的良好的自然環境中進行的體育運動專案,從而集中了陽光浴 空氣浴和冷水浴對人的所有療效。2 游泳鍛鍊是一種全身性的鍛鍊,因而它對疾病的 ...

through與across與past的區別

across adv.橫過,交叉地,在對面prep.越過,交叉,在.的那邊,在.對面那邊 主要強調由表面通過 through prep.穿過,通過,從開始到結束,經由,以 adv.從頭到尾,自始至終,直達地,徹底,完全 adj.直達的,直通的 主要強調由內部通過 通過房門應用through thro...