第一部分 链表:
《c和指针》关于链表的介绍主要是单链表的插入和双链表的插入:
我现在还是很迷茫,为什么不能用单链表的插入算法去对双链表进行插入呢? 此问题有待自己去思考解决,解决方法大致就是建立个链表,或双链表,然后有算法实现插入操作。
1 单链表的插入算法:
此处并没有建立链表,只是描述算法,要插入的值为value且链表为有序链表
#include<stdio.h>
#inlcude<malloc.h>
int list_insert(node** root,int value){
//建立指向插入点的指针及插入点前的指针、
node * up;
node * back;
node * new;
up = *root;
back = Null;
//遍历插入的位置
while(up!=NULL && up->value<value){
back =up;
up= up->next;
}
// 为value建立新节点
new= (node *)malloc(sizeof(node));
if(NULL==new) //分配完后千万不要忘了检测
{
return 0;
}
new->value=value;
// 将节点插入链表
new->next=up; //此处逻辑不要错了
if(NULL==back) // 把NULL放前面,可以防止写错为“=”
{
new=*root // 词句决定了输入参数为指针的指针
}
else
{
new=back->next;
}
return 1;
}
2 双链表插入算法
暂空,解决了上面问题后,在学吧;