package com.devjones.web.javaAlgo.dynamicArray;
public class Main_Linked {
public static void main(String[] args) {
Node head = new Node(1);
head.append(2);
head.append(3);
head.append(4);
// head.retrieve();
// head.delete(2);
// head.retrieve();
// head.delete(2);
// head.retrieve();
head.delete(1);
head.retrieve();
}
}
class Node {
int data; // 보통은 Object 지금은 간단하게 정수값만 취급한다.
Node next = null; // 다음 Node. null을 초기값으로 준 이유는 마지막 Node에 null을 가지고 있어야하기 때문
Node(int d) {
this.data = d;
}
void append(int d) { // 성공여부를 확인하기 위해 boolean 리턴타입을 도입할 수도 있다.
Node end = new Node(d); // 마지막에 넣을 Node
Node n = this; // 포인터. 첫번째 Node?
System.out.println("end.data : " + end.data);
System.out.println("n.data : " + n.data);
System.out.println("end.next : " + end.next);
System.out.println("n.next : " + n.next);
System.out.println("end : " + end);
System.out.println("n : " + n);
System.out.println();
while(n.next != null) { // 마지막 Node를 찾자.
n = n.next;
}
n.next = end; // 마지막 Node 새로 생성ㅇ한 Node를 넣는다.
}
void delete(int d) {
Node n = this;
System.out.println();
System.out.println("n.data : " + n.data);
System.out.println("n.next : " + n.next);
System.out.println("n.next.net : " + n.next.next);
System.out.println("n : " + n);
System.out.println();
while(n.next != null) {
if(n.next.data == d) {
n.next = n.next.next;
}else {
n = n.next;
}
}
}
void retrieve() {
Node n = this;
while(n.next != null) {
System.out.print(n.data + " -> ");
n = n.next;
}
System.out.println(n.data);
}
}
LinkedListNode
package com.devjones.web.javaAlgo.dynamicArray01;
public class LinkedListNode {
public static void main(String[] args) {
LinkedList ll = new LinkedList();
ll.append(1);
ll.append(2);
ll.append(3);
ll.append(4);
ll.retrieve();
ll.delete(1);
ll.retrieve();
}
}
class LinkedList {
Node header;
static class Node {
int data;
Node next = null;
}
LinkedList() {
header = new Node();
}
void append(int d) {
Node end = new Node();
end.data = d;
Node n = header;
System.out.println("end.data : " + end.data);
System.out.println("n.data : " + n.data);
System.out.println("end.next : " + end.next);
System.out.println("n.next : " + n.next);
System.out.println("end : " + end);
System.out.println("n : " + n);
System.out.println();
while(n.next != null) { // 마지막 Node를 찾자.
n = n.next;
}
n.next = end; // 마지막 Node 새로 생성ㅇ한 Node를 넣는다.
}
void delete(int d) {
Node n = header;
System.out.println();
System.out.println("n.data : " + n.data);
System.out.println("n.next : " + n.next);
System.out.println("n.next.net : " + n.next.next);
System.out.println("n : " + n);
System.out.println();
while(n.next != null) {
if(n.next.data == d) {
n.next = n.next.next;
}else {
n = n.next;
}
}
}
void retrieve() {
Node n = header.next;
while(n.next != null) {
System.out.print(n.data + " -> ");
n = n.next;
}
System.out.println(n.data);
}
}'알고리듬에 몸을 맡겨라!' 카테고리의 다른 글
| 문자열 검색 전체 알고리즘 (0) | 2021.06.19 |
|---|---|
| 문자열 검색 (0) | 2021.06.13 |
| 자바와 비트마스크, BitSet (0) | 2021.04.24 |
| 비트마스크 (2) (0) | 2021.04.23 |
| 비트마스크 (1) (0) | 2021.04.23 |