金田一
2004-08-16, 05:49 PM
#include <stdio.h>
#include <stdlib.h>
struct list
{
int data;
struct list *next;
};
typedef struct list node ;
typedef node *link;
void printf_list(link pointer)
{
while(pointer)
{
printf("%d\n",pointer->data);
pointer=pointer->next;
}
}
link create_list(int array[],int num)
{
link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i<num;i++)
{
tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
}
return pointer;
}
void main()
{
int arr[]={3,12,8,6,10};
link ptr;
ptr=create_list(arr,5);
printf_list(ptr);
}
--------
tmp1->next=tmp2;
tmp1=tmp1->next;
請問執行這兩行後,不就會變成tmp1=tmp2了嗎?
謝謝回答
贊助商連結
#include <stdlib.h>
struct list
{
int data;
struct list *next;
};
typedef struct list node ;
typedef node *link;
void printf_list(link pointer)
{
while(pointer)
{
printf("%d\n",pointer->data);
pointer=pointer->next;
}
}
link create_list(int array[],int num)
{
link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i<num;i++)
{
tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
}
return pointer;
}
void main()
{
int arr[]={3,12,8,6,10};
link ptr;
ptr=create_list(arr,5);
printf_list(ptr);
}
--------
tmp1->next=tmp2;
tmp1=tmp1->next;
請問執行這兩行後,不就會變成tmp1=tmp2了嗎?
謝謝回答
贊助商連結