링 체인 테이블 (양방향 체인 테이블로 실현)
10634 단어 문제 요약
public class CycleLink {
Node head = null;
Node tail = null;
int size;
class Node {
Node next = null;
Node previous = null;
int data;
public Node(int data) {
this.data = data;
}
@Override
public String toString() {
return "previous: " + previous.data + " next: " + next.data + " data: " + data;
}
}
public void addNode(int d) {
Node newNode = new Node(d);
if (head == null) {
newNode.next = newNode;
newNode.previous = newNode;
head = newNode;
tail = newNode;
size = 1;
return;
}
Node tailTmp = tail;
tailTmp.next = newNode;
newNode.previous = tailTmp;
head.previous = newNode;
newNode.next = head;
tail = newNode;
size++;
}
public Node getNode(int index) {
if (index == 0) {
return head;
}
if (index + 1 == size) {
return tail;
}
int i = 1;
Node curNode = head.next;
while (curNode != null) {
if (i == index) {
return curNode;
}
curNode = curNode.next;
i++;
}
return null;
}
public Node removeNode(Node remove) {
Node previous = remove.previous;
Node next = remove.next;
if (remove.equals(head)) {
head = next;
}
if (remove.equals(tail)) {
tail = previous;
}
previous.next = next;
next.previous = previous;
size--;
return remove;
}
public int size() {
return size;
}
public static void main(String[] args) {
CycleLink cycleLink = new CycleLink();
cycleLink.addNode(1);
cycleLink.addNode(2);
cycleLink.addNode(3);
System.out.println("size: " + cycleLink.size());
for (int i = 0; i < cycleLink.size(); i++) {
System.out.println(cycleLink.getNode(i));
}
System.out.println("---------------------------------");
Node node1 = cycleLink.getNode(0);
cycleLink.removeNode(node1);
System.out.println("size: " + cycleLink.size());
for (int i = 0; i < cycleLink.size(); i++) {
System.out.println(cycleLink.getNode(i));
}
System.out.println("---------------------------------");
Node node2 = cycleLink.getNode(1);
cycleLink.removeNode(node2);
System.out.println("size: " + cycleLink.size());
for (int i = 0; i < cycleLink.size(); i++) {
System.out.println(cycleLink.getNode(i));
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
시작 서버 보고서:but was actually of type'com.sun.proxy.$Proxy23 오류원인 1: 인터페이스 및 구현 클래스 이름이 규범에 맞지 않습니다. 인터페이스: 인터페이스 구현: 컨트롤러:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.