用c语言实现单链表的按数值插入
时间: 2023-10-25 13:09:16 浏览: 81
使用c语言实现单链表
4星 · 用户满意度95%
在C语言中,实现单链表的按数值插入可以按照以下步骤进行:
1. 定义链表节点结构体,包含两个元素:数据值和指向下一个节点的指针。
typedef struct Node {
int data;
struct Node* next;
} Node;
2. 定义插入函数,输入参数包括链表头指针,要插入的节点数据值。
void insertNode(Node** head, int value) {
Node* new_node = (Node*)malloc(sizeof(Node)); // 创建新节点
new_node->data = value; // 初始化新节点的数据值
new_node->next = NULL; // 初始化新节点的next指针为空
if (*head == NULL) { // 如果链表为空,新节点即为头结点
*head = new_node;
}
else {
Node* cur = *head;
Node* pre = NULL;
while (cur != NULL && cur->data < value) { // 遍历链表,找到第一个比value大的节点
pre = cur;
cur = cur->next;
}
if (pre == NULL) { // 如果插入的位置是头结点之前,即value为最小值
new_node->next = *head;
*head = new_node;
}
else {
pre->next = new_node;
new_node->next = cur;
}
}
}
3. 在main函数中定义头指针,并调用函数插入节点数据。
int main() {
Node* head = NULL;
insertNode(&head, 5);
insertNode(&head, 3);
insertNode(&head, 9);
insertNode(&head, 1);
insertNode(&head, 7);
Node* cur = head;
while (cur != NULL) {
printf("%d ", cur->data);
cur = cur->next;
}
return 0;
}
运行结果为:1 3 5 7 9
阅读全文