在C語(yǔ)言中,insert函數(shù)可以用來(lái)在數(shù)組或鏈表中插入一個(gè)新的元素。
對(duì)于數(shù)組,insert函數(shù)的使用方法如下:
以下是一個(gè)示例代碼:
#include <stdio.h>
void insert(int arr[], int n, int pos, int value) {
// 插入元素到數(shù)組中
for (int i = n - 1; i >= pos; i--) {
arr[i + 1] = arr[i];
}
arr[pos] = value;
// 更新數(shù)組的長(zhǎng)度
n++;
}
int main() {
int arr[10] = {1, 2, 3, 4, 5};
int n = 5; // 數(shù)組的初始長(zhǎng)度
int pos = 2; // 插入的位置
int value = 10; // 要插入的值
printf("插入元素前的數(shù)組:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 調(diào)用insert函數(shù)
insert(arr, n, pos, value);
printf("\n插入元素后的數(shù)組:");
for (int i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
return 0;
}
對(duì)于鏈表,insert函數(shù)的使用方法如下:
以下是一個(gè)示例代碼:
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int value;
struct Node* next;
} Node;
void insert(Node* head, int pos, int value) {
Node* new_node = (Node*)malloc(sizeof(Node)); // 創(chuàng)建新節(jié)點(diǎn)
new_node->value = value;
Node* current = head;
for (int i = 0; i < pos; i++) { // 找到插入位置節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)
current = current->next;
}
new_node->next = current->next; // 新節(jié)點(diǎn)的next指針指向插入位置節(jié)點(diǎn)的next指針
current->next = new_node; // 插入位置節(jié)點(diǎn)的next指針指向新節(jié)點(diǎn)
}
void printList(Node* head) {
Node* current = head->next;
while (current != NULL) {
printf("%d ", current->value);
current = current->next;
}
}
int main() {
Node* head = (Node*)malloc(sizeof(Node)); // 創(chuàng)建頭節(jié)點(diǎn)
head->next = NULL;
insert(head, 0, 1); // 在鏈表頭部插入元素
insert(head, 1, 2); // 在鏈表第二個(gè)位置插入元素
insert(head, 2, 3); // 在鏈表尾部插入元素
printf("插入元素后的鏈表:");
printList(head);
return 0;
}
以上就是C語(yǔ)言中insert函數(shù)的使用方法。