从C和指针这本书中学到的优化插入函数写法:
#include<stdio.h>
typedef struct Node{
int value;
struct Node*link;
}Node;
int sll_insert(Node **linkp,int new_value){
Node *current=*linkp;
while(current!=NULL&¤t->value<new_value)
{
linkp=current->link;
current=current->link;
}
Node* new=(Node*)malloc(sizeof(Node));
new->value=new_value;
new->link=current;
*linkp=new;
}
void pr(Node*p){
while(p!=NULL)
{
printf("%d ",p->value);
p=p->link;
}
}
int main(int argc, char *argv[])
{
int i=10;
Node *root;
for(;i>=0;--i)
sll_insert(&root, i);
pr(root);
return 0;
}
输出结果如下: