app/views
此代码仅打印最后一个元素。我多次检查过,我似乎无法找到错误。我真的很感激如果有人能告诉我哪里出错了。
提前致谢
答案 0 :(得分:2)
head=temp;
此行将覆盖您之前的head
。这就是为什么你只能打印最后一个元素的原因。
在链表中,有两种类型的数据输出:FIFO(先进先出)和LIFO(后进先出)。
例如:
Input = 1 2 3 4
FIFO
Output = 1 2 3 4
LIFO
Output = 4 3 2 1
<强> FIFO 强>
您应该声明struct Node* tail;
temp->next=NULL;
之后你应该添加:
if(head==NULL){
head=temp;
tail=temp;
}
else{
tail->next=temp;
tail=temp;
}
请注意,不得在FIFO中移动磁头。因此我们需要使用tail来添加其他数据。
<强> LIFO 强>
temp->next=NULL;
之后你应该添加:
temp->next=head;
head=temp;
答案 1 :(得分:1)
这两个陈述:
temp->next=NULL;
head=temp;
将丢失先前插入的数据。使用
temp->next=head;
head=temp;
代替。这将使新元素与列表的其余部分保持一致。