/*
**有序单链表的插入,函数参数为指向链表第一个节点的指针及要插入的值
*/
#include <stdio.h>
#include <stdlib.h>
#define FALSE 0
#define TRUE 1
typedef struct NODE {
struct NODE* link;
int value;
} Node;
int
sll_insert(register Node** linkp, int value)
{
register Node* current;
register Node* new_node;
/*
**寻找插入位置,按序访问链表直到一个其值大于等于新值的节点
*/
while ((current = *linkp) != NULL && current->value < value)
linkp = ¤t->link;
/*
**为新节点分配内存,并把新值存储到新节点中,失败返回FALSE
*/
new_node = (Node*) malloc(sizeof(Node));
if (new_node == NULL)
return FALSE;
new_node->value = value;
/*
**插入节点
*/
new_node->link = current;
*linkp = new_node;
return TRUE;
}
语言实现有序单链表的插入
最新推荐文章于 2024-03-25 16:27:08 发布