单链表
 插入
将q节点插入到p后面
| 12
 3
 4
 
 | void InsertNode(LinkedList *p, LinkedList *q) {q -> next = p -> next;
 p -> next = q;
 }
 
 | 
如果是将节点插入在表头呢,分两种情况
此时和上面类似,一共两步
| 12
 
 | s -> next = head -> next;head -> next = s;
 
 | 
| 12
 
 | s -> next = head;head = s;
 
 | 
 删除
删除q节点
| 12
 3
 4
 
 | void DeleteNode(LinkedList *p,LinkedList *q) {p -> next = q -> next;
 free(q);
 }
 
 | 
同样的,删除第一个节点时,有无头节点的单链表在删除时的操作也不一样
有头节点时
| 12
 
 | head -> next = head -> next -> next;free(node);
 
 | 
无头节点
| 12
 
 | head = head -> next;free(node);
 
 | 
 双链表
 插入
| 12
 3
 4
 
 | s -> next = p -> next;p -> next = s;
 s -> prior = p;
 s -> next -> prior = s;
 
 | 
 删除
| 12
 3
 4
 5
 6
 7
 
 | p -> next = s -> next; p -> next -> prior = p;
 free(s);
 
 s -> prior -> next = s -> next;
 s -> next -> prior = s -> prior;
 free(s);
 
 |