从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
pre->next = newNode;
return TRUE;
}
/*
**消除链表

本文介绍了如何使用C语言创建并操作有序单链表。内容来源于《C和指针》一书,详细阐述了链表的基本操作和有序插入的方法。
最低0.47元/天 解锁文章
2794

被折叠的 条评论
为什么被折叠?



