Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AWS
- docker
- data
- big data
- 도커
- linux
- 알고리즘
- 리눅스
- Spring
- 하둡
- sort
- hadoop
- recursive
- java
- redhat
- 자료구조
- 아마존
- 스토리지
- Data Structure
- rhcsa
- Redshift
- 레드햇
- 설치
- 스프링
- 재귀
- 빅데이터
- 자바
- storage
- Amazon
- algorithm
Archives
- Today
- Total
Developer MJ
[Java] Double Linked List 구현 본문
더블 링크드 리스트
insert, extract ( remove ), show 구현
import java.util.Scanner;
class Node {
int data;
Node prev;
Node next;
Node(int _data) {
data = _data;
}
static void insert(Node _head, Node _node) {
Node next = _head.next;
_head.next = _node;
_node.prev = _head;
if (next != null) {
next.prev = _node;
_node.next = next;
}
}
static Node extract(Node _head, int _data) {
Node current = _head.next;
while (current != null) {
if (current.data == _data) {
Node prev = current.prev;
Node next = current.next;
prev.next = next;
if (next != null) {
next.prev = prev;
}
return current;
}
current = current.next;
}
return null;
}
static void show(Node _head) {
Node temp = _head.next;
while (temp != null) {
System.out.printf("%d ", temp.data);
temp = temp.next;
}
System.out.println();
}
}
public class LinkedList {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Node head = new Node(0);
for (int i = 0; i < N; i++) {
int mode = sc.nextInt();
int data = sc.nextInt();
switch (mode) {
case 1:
// Insert node
Node new_node = new Node(data);
Node.insert(head, new_node);
break;
case 2:
// Delete node
Node deleted_node = Node.extract(head, data);
if (deleted_node == null) {
System.out.println("Nothing to delete with : " + data);
}
break;
default:
System.out.println("Not supported mode : " + mode);
System.out.println("1 : Insert node");
System.out.println("2 : Delete node");
break;
}
Node.show(head);
}
}
}
'Programming > Code' 카테고리의 다른 글
[Java] Priority Queue (우선순위 큐) 구현 (0) | 2020.12.20 |
---|---|
[C/C++] DFS/BFS 구현 (0) | 2019.04.24 |
[C/C++] Binary Search Tree 구현 (0) | 2019.04.24 |
[Java] 퀵정렬 (Quick Sort) (0) | 2019.04.18 |
[Java] 계수정렬(Counting Sort) (0) | 2019.04.18 |