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