将数组的内容,用前插法建立一个带有头节点的单向链表。 #include "stdlib.h" #include "stdio.h" #define N 10 typedef struct list { int data; struct list *next; }NODE; NODE *creat_list(int *a,int n) { } print(NODE *h) //打印链表内容 { NODE *p; p=h->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n"); } int main() { int i,j,a[N]={1,13,25,37,9,911,133,415,147,19}; NODE *head; head=creat_list(a,10); print(head); }
时间: 2023-06-19 13:06:09 浏览: 82
#001数据结构实验之链表一:顺序建立链表.md
可以按照以下方式实现:
```C
NODE *creat_list(int *a,int n)
{
NODE *head, *p;
head = (NODE *)malloc(sizeof(NODE)); // 创建头节点
head->next = NULL; // 头节点不存放数据,指向空
for(int i=0; i<n; i++)
{
p = (NODE *)malloc(sizeof(NODE)); // 创建新节点
p->data = a[i]; // 将数组元素赋值给节点的数据域
p->next = head->next; // 将新节点插入到头节点后面
head->next = p;
}
return head; // 返回头节点指针
}
```
在主函数中调用:
```C
int main()
{
int i,j,a[N]={1,13,25,37,9,911,133,415,147,19};
NODE *head;
head=creat_list(a,10);
print(head);
return 0;
}
```
完整代码如下:
阅读全文