자료구조 & 알고리즘
[자료구조] 선형자료구조 연결리스트(Linked List) 노드(Node) 위치값 찾기
진기명기
2023. 3. 9. 02:38
🫠 선형자료구조 - 연결리스트(Linked List) 내에 있는 노드(node)의 위치값 찾기
❗️ link3 연결리스트를 이어서 작성(링크 참고)
[자료구조] 선형자료구조 연결리스트(Linked List) 원하는 위치에 노드(Node) 추가하기
🫠 선형자료구조 - 연결리스트(Linked List) 원하는 위치에 노드(Node) 추가하기 ❗️ 연결리스트에 노드 추가하는 또 다른 방법 확인 ⬇️⬇️⬇️ https://cyjcyj.tistory.com/97 [자료구조] 선형자료구조
cyjcyj.tistory.com
🫠 연결리스트(Linked List) 내에 존재하는 노드(node)의 위치값을 찾아보자
> indexOf 메서드
/* 노드의 위치값 찾기 */
LinkedList.prototype.indexOf = function(value) {
let current = this.head,index = 0
// 현재 node가 null이 아닐 때까지
while(current != null){
if(current.data === value){ // 연결리스트 내 노드의 data가 찾고자하는 노드의 data와 같다면
return index
}
// 찾고자 하는 node의 data가 아니라면
index++
current = current.next
}
// 연결리스트 내에 찾고자 하는 node가 없다면
return -1
}
👉🏻 output : 설명 주석 처리 확인
✅ node의 위치값을 찾는 코드는 단순하다. 해당 node의 data값을 현재 연결리스트에 존재하는 node의 data값과 비교하면 된다.
❗️ indexOf를 통해 원하는 노드의 위치값을 찾아보자
link3.printNode() // 100 -> 70 -> 50 -> 30 -> 10 -> null
console.log(link3.indexOf(1000)) // -1
console.log(link3.indexOf(100)) // 0
console.log(link3.indexOf(50)) // 2
console.log(link3.indexOf(10)) // 4
👉🏻 output : 주석 처리 확인
✅ indexof(1000)의 경우, 연결리스트에 해당하는 노드가 없기 때문에 -1을 반환하였다.
✅ 각각 해당하는 노드의 data에 맞는 위치값을 반환한 것을 확인할 수 있다.
🫠 removeAt + indexOf를 한 번에 사용하는 메서드를 작성해 보자
/* removeMix = removeAt + indexOf */
LinkedList.prototype.removeMix = function(value){
let index = this.indexOf(value) // indexOf의 반환값 담김
return this.removeAt(index)
}
link3.printNode() // 100 -> 70 -> 50 -> 30 -> 10 -> null
console.log(link3.removeMix(1000)) // null
link3.removeMix(10)
link3.printNode() // 100 -> 70 -> 50 -> 30 -> null
link3.removeMix(50)
link3.printNode() // 100 -> 70 -> 30 -> null
link3.removeMix(100)
link3.printNode() // 70 -> 30 -> null
console.log(link3.size()) // 2
👉🏻 output : 주석 처리 확인
✅ node의 data 값을 받는 removeMix 메서드가 indexOf 메서드를 통해 해당 node의 index 값을 반환받고, removeAt의 인자값으로 넘겨주어 해당 index에 맞는 node를 삭제해 주었다.
❗️removeAt 메서드는 아래 링크에서 확인 ⬇️⬇️⬇️
https://cyjcyj.tistory.com/100
[자료구조] 선형자료구조 연결리스트(Linked List) 노드(Node) 위치값으로 삭제하기
🫠 선형자료구조 - 연결리스트(Linked List) 내에 있는 노드(node) 위치값으로 삭제하기 ❗️ 노드 value값으로 삭제하는 방법도 확인! ❗️ link3 연결리스트를 이어서 작성(두 번째 링크 확인하기) http
cyjcyj.tistory.com