- 论坛徽章:
- 0
|
回复 4# lxyscls
我改进了,知道咋用了
#include <stdlib.h>
#include <stdio.h>
#define False 0
#define True 1
typedef struct NODE
{
struct NODE *link;
int value;
} Node;
Node *sll_insert(register Node *linkp, int new_value)
{
register Node *current;
register Node *new;
// 寻找正确的插入位置,方法是按顺序访问链表,直到到达其值大于或等于新插入值的节点
while ((current = linkp) != NULL && current->value < new_value)
linkp = current->link;
// 为新节点分配内存,并把新值存储到新节点中,如果失败,返回False
new = (Node *)malloc(sizeof(Node));
if (new == NULL)
return False;
new->value = new_value;
// 把新节点插入到链表中,并返回True
new->link = current;
linkp = new;
return linkp;
}
int main(void)
{
Node a, b, c, *linkp;
a.value = 5;
a.link = &b;
b.value = 10;
b.link = &c;
c.value = 15;
c.link = NULL;
linkp = (Node *)malloc(sizeof(Node));
linkp = &a;
sll_insert(linkp, 12);
printf("linkp: %d\n", linkp->value);
return 0;
}
|
|