您的位置:首页 > 其它

单链表的插入

2015-07-09 22:33 267 查看
预编译

#include <stdio.h>
#include <stdlib.h>
#define status int
#define TRUE 1
#define FALSE 0


数据结构

typedef struct NODE{
struct NODE *next;        /* 指向下一个结点 */
int value;                /* 存放结点值 */
}Node, *PNode, **List;


插入代码

/*
功能描述:
把一个值插入到单链表(从小到大)

参数:
rootp -- 指向根结点
new_value -- 存放新值

返回值:
如果插入成功,返回TRUE;否则,返回FALSE
*/
status
Insert( List linkp, int new_value )
{
if ( linkp == NULL ){
return FALSE;
}

Node *current = NULL;

/* 寻找插入位置 */
while ( (current = *linkp) != NULL &&  current->value <= new_value ){
if ( current->value == new_value ){
printf( "%d已存在\n", new_value );
return FALSE;
}

linkp = ¤t->next;
}

/* 创建新结点 */
Node *_new = (PNode) malloc ( sizeof( Node ) );
if ( _new == NULL ){
printf( "内存不足\n" );
return FALSE;
}
_new->value = new_value;

/* 插入新结点 */
_new->next = current;
*linkp = _new;
return TRUE;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: