0
#include<stdio.h>
#include<stdlib.h>
struct nodetag{
int ndata;
struct nodetag *pNext;
};
typedef struct nodetag nodetag;
int main(){
nodetag *p1=NULL,*bago,*last,*ptemp;
int i,x,y;
printf ("\nEnter number of nodes: ");
scanf ("%d", &i);
y=i;
while (i)
{
if (p1 == NULL)
{
p1 = malloc(sizeof(nodetag));
last = p1;
p1->pNext = NULL;
scanf("%d",&p1->ndata);
}
else
{
bago = malloc(sizeof(nodetag));
last->pNext = bago;
bago->pNext = NULL;
scanf("%d",&bago->ndata);
}
i--;
}
ptemp = p1;
for(x=0;x<y;x++){
printf("%d",ptemp->ndata);
ptemp=ptemp->pNext;
}
getch();
return 0;
}
我可以將整個節點複製到ptemp以避免pfirst被移動? 當我運行代碼時,它似乎只打印節點的第一個和最後一個數據。 節點數超過2個時,如何訪問第二個節點? IM重點的節點打印數據C中的鏈表可以將整個節點複製到ptemp
ptemp = p1;
for(x=0;x<y;x++){
printf("%d",ptemp->ndata);
ptemp=ptemp->pNext;
這似乎是它崩潰的整個程序
你能解釋一下,對我而且謝謝它使它成功! :「> – PNC
是的,現在我明白了,你指出」最後一個「指針 – PNC