从C和指针这本书上搬来的:
/*
**插入到一个有序地单链表,函数的参数是一个指
**向链表第一个节点的指针以及需要插入的值。
*/
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
typedef struct NODE{
struct NODE *next;
int value;
}Node;
int insert1(Node **first,int new_value)
{
Node *current = *first;
Node *pre = NULL;
Node *newNode;
newNode = (Node *)malloc(sizeof(Node));
if(newNode == NULL)
return FALSE;
newNode->value = new_value;
while(current != NULL && current->value < new_value) //temp不为空,应在判断前!
{
pre = current;
current = current->next;
}
newNode->next = current;
if(pre == NULL) //新节点位于链表首部,包括空链表的情况
*first = newNode;
else