링크 데이터 구조 js 구현
function LinkedList(){
//
let Node = function(element){
this.element = element
this.next = null
}
let length = 0
let head = null
//
this.append = function(element){
//
//
let node = new Node(element),
current
// , ,
//
if(head == null){
// head
head = node
}else{
//
current = head
while(current.next){
current = current.next
}
current.next = node
}
length ++
}
//
this.removeAt = function(position){
//
if(position > -1 && position < length){
let current = head,
previous,
index = 0;
//
if(position === 0){
head = current.next
}else{
while(index++ < postion){
previous = current
current = current.next
}
// previous current , current,
previous.next = current.next
}
length --
return current.element
}else{
return null
}
}
//
this.resize = function(){
return length
}
//
this.insert = function(position, element){
//
if(position >=0 && position <= length){
//
let node = new Node(element),
current = head,
previous,
index = 0
//
if(position === 0){
node.next = current
head = node
}else{
//
while(index++ <= position){
previous = current
current = current.next
}
//
node.next = current
previous.next = node
}
length ++
return true
}else{
return false
}
}
// toString()
this.toString = function(){
let current = head,
string = ''
while(current){
string += current.element + (current.next ? 'n' : '')
current = current.next
}
return string
}
// indexOf()
this.indexOf = function(element){
let current = head
index = 0
while(current){
if(element === current.element){
return index
}
index ++
current = current.next
}
return -1
}
//
this.remove = function(element){
let index = this.indexOf(element)
return this.removeAt(index)
}
// isEmpty
this.isEmpty = function(){
// true false
return length === 0
}
//
this.getHead = function(){
return head
}
}
//
function DoublyLinkedList() {
let Node = function(element){
this.element = element
this.next = null
this.prev = null
}
let length = 0
let head = null
let tail = null
//
this.insert = function(position, element){
//
if(position >=0 && position <= length){
let node = new Node(element),
current = head,
previous,
index = 0
if(position === 0){
if(!head){
head = node
tail = node
}else{
node.next = current
current.prev = node
head = node
}
}else if(position === length){
current = tail
current.next = current
tail = node
}else{
while(index++ < position){
previous = current
current = current.next
}
node.next = current
previous.next = node
current.prev = node
node.prev = previous
}
length ++
return true
}else{
return false
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.