c++创建一个带头节点链表
时间: 2023-05-29 21:06:10 浏览: 111
#include <stdio.h>
#include <stdlib.h>
//定义节点结构体
typedef struct Node {
int data;
struct Node *next;
} Node;
//创建带头节点的链表
Node *createList() {
//创建头节点
Node *head = (Node *) malloc(sizeof(Node));
head->next = NULL;
//输入数据个数
int n;
printf("请输入数据个数:");
scanf("%d", &n);
//输入数据并插入链表
for (int i = 0; i < n; i++) {
int data;
printf("请输入第%d个数据:", i + 1);
scanf("%d", &data);
//创建新节点
Node *node = (Node *) malloc(sizeof(Node));
node->data = data;
node->next = NULL;
//将新节点插入链表尾部
Node *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
return head;
}
//遍历链表并打印数据
void traverseList(Node *head) {
Node *p = head->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main() {
Node *head = createList();
traverseList(head);
return 0;
}
阅读全文