3 回答

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
這個(gè)估計(jì)是pNode是個(gè)結(jié)構(gòu)體,然后比如struct _Node{ ...... struct _Node * next;}Node;所以pNode = pNode->pNext是把pNode這個(gè)指針指向他的下一個(gè)元素。這個(gè)就相當(dāng)于一個(gè)鐵鏈,一個(gè)咬一個(gè),然后通過這個(gè),可以知道他的下一個(gè)是什么。

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
12345 | struct Node { int a; struct Node *next; }; |
鏈表中一般都有頭結(jié)點(diǎn),就是head,其中可以存放數(shù)據(jù),也可以不存放數(shù)據(jù)。在動(dòng)態(tài)建立鏈表的過程中,肯定需要定義一個(gè)新的結(jié)點(diǎn),比如pNext。
1 | pNext=( struct Node *) malloc ( sizeof ( struct Node)); |
這時(shí)候應(yīng)該將頭結(jié)點(diǎn)head的next域指向該新的結(jié)點(diǎn)。但是head一般不移動(dòng),因?yàn)橐苿?dòng)后就找不到頭結(jié)點(diǎn)了。所以定義一個(gè)指針p,p在開始時(shí)指向頭結(jié)點(diǎn),就是
1 | p=pHead; |
建立完新的結(jié)點(diǎn)后,p的next域指向該新結(jié)點(diǎn)。由于下一次還要建立新節(jié)點(diǎn),所以p要再指向現(xiàn)在已經(jīng)建立好的新結(jié)點(diǎn)。這樣下一次建立新的結(jié)點(diǎn)時(shí)才能正確指向該節(jié)點(diǎn)。不知道表達(dá)的好不好,把源程序復(fù)制在下面吧,應(yīng)該看一下程序就懂了。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | #include<stdio.h> #include<stdlib.h> struct Node { int a; struct Node *next; }; struct Node *create_list(); void display_list( struct Node *p); int main() { struct Node *pHead; pHead=create_list(); display_list(pHead); return 0; } struct Node *create_list() { struct Node *pHead=( struct Node *) malloc ( sizeof ( struct Node)); struct Node *pNext; struct Node *p; int i; int len; int value; p=pHead; p->next=NULL; printf ( "請(qǐng)輸入鏈表的節(jié)點(diǎn)個(gè)數(shù):\n" ); scanf ( "%d" ,&len); for (i=0;i<len;i++) { pNext=( struct Node *) malloc ( sizeof ( struct Node)); printf ( "請(qǐng)輸入第%d個(gè)節(jié)點(diǎn)的數(shù)據(jù):\n" ,i+1); scanf ( "%d" ,&value); pNext->a=value; pNext->next=NULL; p->next=pNext; p=pNext; } return pHead; } void display_list( struct Node *p) { int i=1; p=p->next; for (p;p!=NULL;p=p->next) { printf ( "第%d個(gè)節(jié)點(diǎn)的數(shù)據(jù)為:%d\n" ,i,p->a); i++; } } |
程序沒有錯(cuò)誤的,可以運(yùn)行,可以看一下create_list()函數(shù),是建立鏈表,包含你想知道的問題,建立鏈表是一個(gè)循環(huán)結(jié)構(gòu)。把運(yùn)行結(jié)果也復(fù)制一下
- 3 回答
- 0 關(guān)注
- 4712 瀏覽
添加回答
舉報(bào)