我是靠谱客的博主 开放牛排,这篇文章主要介绍Java 用双向循环链表实现 遍历,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package day2;

/**
* 构建双向循环链表,实现遍历功能
*/
public class DoubleLB {

public static void main(String[] args) {
DoubleLB doubleLB = new DoubleLB();
doubleLB.creatCicle(100);
doubleLB.doubbl(30);
}
//头结点
Entry head;
void creatCicle(int length){
for(int i= 1; i<=length;i++){
Entry newEntry = new Entry(i*2);
//初始化头结点,把next和pre都指向自己
if(i==1){
head = new Entry(null,null,1);
head.next = head;
head.pre = head;
}else{
/**
* 1 :新增节点newEntry 的next指向 头结点 head
* 2: newEntry的pre 指向 head的pre。这里头结点的pre可以看做 最后一个节点(便于理解),也就是要插入新节点的位置 前一个节点
* 3: 插入新节点的位置 前一个节点 的next指向 newEntry
* 4:头结点的pre 指向newEntry。
*/
newEntry.next =head;
newEntry.pre = head.pre;
//head.pre.next = newEntry;//new.pre.next =newEntry
newEntry.pre.next = newEntry;
head.pre = newEntry;

}
}
}

/**
* 这里查看链表上的节点的字段number 是否有等于 输入的number。用到了双向遍历
* @param number
*/
void doubbl(int number){
Entry nextNode = head.next;
Entry preNode = head.pre;

while(nextNode != preNode){
System.out.println("next"+nextNode.getNumber()+": pre"+preNode.getNumber());
if(nextNode.getNumber() == number || preNode.getNumber() ==number){
System.out.println(" find next"+nextNode.getNumber()+": pre"+preNode.getNumber());
return;
}
nextNode=nextNode.next;
preNode=preNode.pre;
}
}

class Entry{
Entry next;
Entry pre;
int number;

public Entry getNext() {
return next;
}

public void setNext(Entry next) {
this.next = next;
}

public Entry getPre() {
return pre;
}

public void setPre(Entry pre) {
this.pre = pre;
}

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public Entry(int number) {
this.number = number;
}

public Entry(Entry next, Entry pre, int number) {
this.next = next;
this.pre = pre;
this.number = number;
}
}


}

转载于:https://www.cnblogs.com/xlblog/p/11553059.html

最后

以上就是开放牛排最近收集整理的关于Java 用双向循环链表实现 遍历的全部内容,更多相关Java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部