概念:双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
下面直接上代码
public class DulNode {
char data;
DulNode next;
DulNode prior;
int insert(DulNode head, int i){//在p结点之前加入s
DulNode p, s;
int j = 1;
p = head.next;
while (p!= head && j< i) {
p = head.next;
j++;
}
if(i == j){//注意交换顺序
s = new DulNode();
s.prior = p.prior;
p.prior.next = s;
p.prior = s;
s.next = p.next;
return 1;
}else{
return 0;
}
}
int delete(DulNode head , int i){//删除第i个结点p结点
DulNode p, s;
int j = 1;
p = head.next;
while (p!= head && j< i) {
p = head.next;
j++;
}
if(i == j){//注意交换顺序
p.prior.next = p.next;
p.next.prior = p.prior;
p = null;//记得释放
return 1;
}else{
return 0;
}
}
}
本文介绍了一种双向链表的数据结构,并提供了插入和删除节点的具体实现代码。通过这些方法可以在双向链表中任意位置进行元素的增删操作。
6211

被折叠的 条评论
为什么被折叠?



