c编程链表怎么定义

时间:2025-03-01 09:53:51 明星趣事

在C语言中,链表是一种线性数据结构,由一系列节点组成。每个节点包含两部分:数据域(data)和指针域(next)。数据域用于存储具体的数据,而指针域用于存储指向下一个节点的地址。链表的大小不需要预定义,插入和删除操作高效,非常适合动态存储场景。

```c

struct Node {

int data; // 数据域,存储具体数据

struct Node* next; // 指针域,存储指向下一个节点的地址

};

```

或者,可以使用`typedef`对结构体类型进行重命名,以便更方便地使用:

```c

typedef struct Node {

int data;

struct Node* next;

} Node;

```

接下来,可以定义链表的基本操作,例如创建链表、插入节点和删除节点等。

创建链表的示例代码:

```c

Node* createLinkedList(int *data, int len) {

Node *head = NULL, *tail = NULL;

for (int i = 0; i < len; i++) {

Node *node = (Node *)malloc(sizeof(Node));

node->data = data[i];

node->next = NULL;

if (tail != NULL) {

tail->next = node;

}

tail = node;

if (head == NULL) {

head = node;

}

}

return head;

}

```

遍历链表的示例代码:

```c

void traverseLinkedList(Node *head) {

Node *current = head;

while (current != NULL) {

printf("%d -> ", current->data);

current = current->next;

}

printf("NULL\n");

}

```

在使用链表时,需要注意动态分配的内存需要在适当的时候释放,以避免内存泄漏。