// 단방향 링크드 리스트 구현
class Node{
private final int data; // 현재 데이터
private Node next = null; // 다음 데이터
public Node(int d){
this.data = d;
}
// 뒤에 더해주면 된다.
void append(int d){
Node end = new Node(d); // 마지막으로 들어갈 노드를 생성해준다.
Node node = this; // 현재 노드
while(node.next != null){ // 노드의 다음 인자가 있다면 다음으로 계속 찾아준다.
node = node.next; // 다음 노드로 넘어가는 부분
}
node.next = end; // 다음 노드의 주소값을 end로 설정
}
// 노드의 next 값을 변경해주면 된다.
void delete(int d){
Node node = this;
while(node.next!=null){
if(node.next.data == d){
node.next = node.next.next;
}else{
node = node.next;
}
}
}
// 출력해준다.
void retrieve(){
Node node = this;
while(node.next != null){
System.out.print(node.data + " -> ");
node = node.next;
}
System.out.println(node.data);
}
}
public class SingleLinkedList {
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.delete(3);
head.retrieve();
}
}
https://www.youtube.com/watch?v=C1SDkdPvQPA
'자료구조 & 알고리즘 관련 > 자료구조&알고리즘' 카테고리의 다른 글
[BOJ 2346] 백준 풍선 터뜨리기 자바 (0) | 2024.07.21 |
---|---|
Queue 2개로 Stack구현하기 (0) | 2024.02.03 |
Stack 두개를 이용하여 Queue구현하기 (0) | 2024.02.03 |
자료구조란? (0) | 2023.12.06 |
링크드리스트 노드의 구현 (0) | 2022.11.28 |