实现一个函数,输出带头结点的单链表的的所有结点元素值。使用c语言回答
时间: 2023-05-31 08:07:07 浏览: 92
```
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node *next;
}Node;
void printList(Node *head){
Node *p = head->next;
while(p!=NULL){
printf("%d ",p->data);
p = p->next;
}
}
int main(){
Node *head = (Node*)malloc(sizeof(Node));
Node *p1 = (Node*)malloc(sizeof(Node));
Node *p2 = (Node*)malloc(sizeof(Node));
Node *p3 = (Node*)malloc(sizeof(Node));
p1->data = 1;
p2->data = 2;
p3->data = 3;
head->next = p1;
p1->next = p2;
p2->next = p3;
p3->next = NULL;
printList(head);
return 0;
}
```
相关问题
实现一个函数,输出带头结点的单链表的的所有结点元素值。使用C语言
以下是C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct ListNode {
int val;
struct ListNode *next;
} ListNode;
// 创建带头结点的单链表
ListNode* createList() {
ListNode *head = (ListNode *)malloc(sizeof(ListNode));
head->next = NULL;
ListNode *tail = head;
int val;
while (scanf("%d", &val) != EOF) {
ListNode *node = (ListNode *)malloc(sizeof(ListNode));
node->val = val;
node->next = NULL;
tail->next = node;
tail = node;
}
return head;
}
// 输出带头结点的单链表的所有结点元素值
void printList(ListNode *head) {
ListNode *node = head->next;
while (node != NULL) {
printf("%d ", node->val);
node = node->next;
}
}
// 主函数
int main() {
ListNode *head = createList();
printList(head);
return 0;
}
```
使用方法:
1. 编写上述代码,保存为`main.c`文件;
2. 打开终端或命令行窗口,进入代码所在目录;
3. 输入`gcc main.c -o main`编译代码;
4. 输入`./main`运行程序;
5. 依次输入带头结点的单链表的结点元素值,以回车结束;
6. 程序会输出带头结点的单链表的所有结点元素值。
注意:在输入结点元素值时,输入EOF(即Ctrl + D)表示输入结束。
使用C语言实现一个函数,输出带头结点的单链表的的所有结点元素值
假设链表的头结点为head,每个结点包含一个整型数据域和一个指向下一个结点的指针域。
```c
void printList(ListNode* head) {
ListNode* cur = head->next; // 从第一个结点开始遍历
while (cur != NULL) { // 当遍历到尾结点时结束
printf("%d ", cur->val); // 输出当前结点的值
cur = cur->next; // 移动到下一个结点
}
}
```
其中,ListNode的定义如下:
```c
typedef struct ListNode {
int val;
struct ListNode* next;
} ListNode;
```
阅读全文