上一篇博文实现了链表的getbuid方法,它获得序号,返回该序号对应的结点。
增加思路:
后插法:在前结点的后面插入结点,遵循先连接后断开的原则。遍历到插入位置的前面,即n-1的结点处,将新结点连接到n-1结点的后继结点,再将n-1结点的连接改成到新结点。
简单如下:(新结点为newnode)
node *p = getbyid(n-1);
newnode->next = p->next;
p->next = newnode;
删除思路:若删除第n个结点,获得n-1的结点,直接让n-1不再指向n,而直接指向n的后继结点;
简单如下:
node *p = getbyid(n-1);
node *nnode = p->next;
p->next = nnode -> next;
free(nnode);