【发布时间】:2020-01-31 11:14:51
【问题描述】:
我正在学习 C 中的单链表并尝试链接数组的组件。我已经写了几行代码,但它没有给出所需的结果,即从数组中制作和打印链表。有人可以解释为什么它不起作用吗?谢谢
#include <stdio.h>
#include <stdlib.h>
typedef struct list
{
int data;
struct list *next;
}
list;
list *createlinkedlist(int *arr);
void printlist(list * head);
int main(void)
{
int arr[]={1,2,3,4,5};
list *head=NULL;
head = createlinkedlist(arr);
printlist(head);
}
list *createlinkedlist(int *arr)
{
list *head=NULL;
list *temp=NULL;
list *p=NULL;
for (int j=0, O=sizeof(arr); j<O; j++)
{
temp= (list*)malloc(sizeof(list));
temp->next = NULL;
if(head == NULL)
head=temp;
else
{
p=head;
while(p->next!=NULL)
{
p=p->next;
}
p->next = temp;
}
}
return head;
}
void printlist(list *head)
{
list * p = head;
while (p !=NULL)
{
printf("%d\n", p->data);
p = p->next;
}
}
【问题讨论】:
标签: c arrays singly-linked-list