c语言用头插法和尾插法建立链表
时间: 2024-04-05 07:28:14 浏览: 97
在C语言中,可以使用头插法和尾插法来建立链表。链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
1. 头插法建立链表:
头插法是将新节点插入到链表的头部。具体步骤如下:
- 创建一个新节点,并为其分配内存空间。
- 将新节点的指针指向原链表的头节点。
- 更新链表的头节点为新节点。
示例代码如下:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* createLinkedListByHeadInsert(int arr[], int n) {
Node* head = NULL;
for (int i = 0; i < n; i++) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = arr[i];
newNode->next = head;
head = newNode;
}
return head;
}
```
2. 尾插法建立链表:
尾插法是将新节点插入到链表的尾部。具体步骤如下:
- 创建一个新节点,并为其分配内存空间。
- 若链表为空,则将新节点作为头节点。
- 若链表不为空,则找到链表的尾节点,并将尾节点的指针指向新节点。
示例代码如下:
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* createLinkedListByTailInsert(int arr[], int n) {
Node* head = NULL;
Node* tail = NULL;
for (int i = 0; i < n; i++) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = arr[i];
newNode->next = NULL;
if (head == NULL) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
return head;
}
```
阅读全文