生成c语言实现链表构造,采用表头插入法构造链表,输出表中所有元素,输入n个整数,以空格分隔,输入值为0时表示输入结束,输出链表中所有元素,以逗号分隔
时间: 2023-05-22 17:06:43 浏览: 121
c语言实现链表的基本操作,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
以下是生成C语言实现链表构造并输出表中所有元素的代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* buildList(int n) {
struct ListNode *head = NULL;
for (int i = 0; i < n; i++) {
int num;
scanf("%d", &num);
if (num == 0) break;
struct ListNode *node = (struct ListNode*)malloc(sizeof(struct ListNode));
node->val = num;
node->next = head;
head = node;
}
return head;
}
void printList(struct ListNode *head) {
struct ListNode *curr = head;
while (curr != NULL) {
printf("%d", curr->val);
if (curr->next != NULL) printf(", ");
curr = curr->next;
}
}
int main() {
int n;
scanf("%d", &n);
struct ListNode *head = buildList(n);
printList(head);
return 0;
}
```
您可以将整数输入到控制台中,以空格分隔,并在最后输入0来结束输入。创建链表时使用表头插入法,因此最后输入的值将成为链表的第一个元素。最后,将所有元素以逗号分隔的形式输出到控制台中。
阅读全文