您的位置:首页 > 编程语言 > C语言/C++

有序单链表的插入 C语言实现

2013-10-27 19:58 302 查看
C语言实现的有序单链表的插入(由小到大排列

"sll_node.h"
typedef struct NODE{
struct NODE *link;
int	    value;
} Node;

#include  <stdlib.h>
#include  <stdio.h>
#include  "sll_node"

#define  FALSE  0
#defien  TRUE   1

int
sll_insert(register Node **linkp , int new_value)
{
register Node *current;
register Node *newnode;

/*
**寻找插入位置
*/
while( (current = *linkp) != NULL && current->value < new_value)
linkp = ¤t->link;

/*
** 为新节点分配内存,如果分配失败则返回FALSE
*/
newnode = (Node *)malloc( sizeof( Node ));
if( newnode == NULL)
return FALSE;
newnode->value = new_value;

/*
**将新节点插入链表中
*/
newnode->link = current;
*linkp = newnode;

return TRUE;
}

其中 link 是指向根节点 root 的指针,根节点root是指向第一个节点的指针。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐