代码都没有~
我就说一点我的理解吧。。。
先抛出三个问题:
1. 要对哪一个链表进行操作
2. 链表要插入在哪个节点的前面,或者说你这个节点要插入在什么位置~
3. 插入节点的数据域的值是什么
综上所述,插入一个节点,我们至少需要三个参数
下面上代码:bool insert (PNODE pHead, int pos, int val){
int i = 0;
PNODE p = pHead;
// 这个算法我迄今为止还没搞明白
// 但是他确实能够过滤一些意外情况。。。
// 没搞懂就先把他背会吧。苦笑。。
while (P != NULL && i < pos-1){
p = p->pNext;
i++;
}
if (i > pos-1 || p == NULL){
return false;
}
// 过滤了这些意外情况!就开始造节点了~~
PNODE pNew = (PNODE)malloc(sizeof(NODE));
// 检查一下是否分配成功了~如果失败了,就把程序停了~
if (pNew == NULL){
printf ("内存分配失败~");
exit(-1);
}
// 能到这,肯定就是内存分配成功了,并且过滤了意外情况,所以!开始给节点赋值!
pNew->data = val; // 给数据域赋值~
PNODE q = p->pNext; //下面这三步为了能让你看懂~ 还是画张图吧。。你待会去下面找图~
p->pNext = pNew;
pNew->pNext = q;
return true;
}
PS画图果然没有coreldraw方便~ 苦笑~ |