在阅读了关于链表的here之后,我开始弄乱它,我定义了结构,插入到它,但是面对一些我不明白的东西,也许我做错了什么,但我想我需要你的建议或小启发。
这是我的代码:
struct node {
int val;
struct node * next;
};
typedef struct node item;
item printcurr(item *curr){
printf("curr -> val %d\n",curr->val);
}
item addnode(item *curr,item *head,int num){
curr->val=num;
curr->next = head;
head=curr;
}
void main() {
item * curr, * head;
int i,ITEMS,num;
head = NULL;
printf("How many items? \n");
scanf("%d",&ITEMS);
printf("Insert your numbers please\n");
for(i=1;i<=ITEMS;i++) {
curr = (item *)malloc(sizeof(item));
scanf("%d",&num);
addnode(curr,head,num);
}
while(curr) {
printcurr(curr);
curr = curr->next ;
}
}
例如,我得到 ITEM 3 的数量,然后我插入 1,2,3,输出将是 3。我在这里遗漏了一些东西;我将如何打印所有列表而不仅仅是最后一个数字?