JavaScript 패키지된 단방향 체인 테이블의 예제 코드
5318 단어 JavaScript봉인하다단방향체인 미터
1. LinkList의 클래스를 봉인하여 체인 테이블 구조를 나타냅니다.
2. LinkList 클래스에 노드의 정보(data와next)를 봉인하는 Node 클래스가 있습니다.
3. 체인 테이블에 두 개의 속성을 저장한다. 하나는 체인 테이블의 길이이고 하나는 체인 테이블의 첫 번째 노드이다.
4. 체인 테이블을 봉인하는 일반적인 방법:
<script type="text/javascript">
function LinkList(){
/* */
function Node(data){
this.data = data
this.next = null
}
this.head = null
this.length = 0
/* */
LinkList.prototype.append = function(data){
/* */
var newNode = new Node(data)
if(this.length === 0){
this.head = newNode
}else{
/* */
var current = this.head
while(current.next){
current = current.next
}
current.next = newNode
}
this.length += 1
}
/* toString */
LinkList.prototype.toString = function(){
var current = this.head
var listString = ""
while(current){
listString += current.data +" "
current = current.next
}
return listString
}
/* insert */
LinkList.prototype.insert = function(position,data){
/* position */
if(position<0||position>this.length) return false
var node = new Node(data)
if(position == 0){
node.next = this.head
this.head = node
}else{
var index = 0
var current = this.head
var previous = null
while(index++ < position){
previous = current
current = current.next
}
node.next = current
previous.next = node
}
this.length += 1
return true
}
/* get */
LinkList.prototype.get = function(position){
/* */
if(position<0 || position >= this.length) return null
var current = this.head
var index = 0
while(index++ < position){
current = current.next
}
return current.data
}
/* indexOf */
LinkList.prototype.indexOf = function(data){
/* */
var current = this.head
var index = 0
/* */
while(current){
if(current.data === data){
return index
}else{
current = current.next
index += 1
}
}
return -1
}
/* update */
LinkList.prototype.update = function(position,data){
/* */
if(position<0 || position >= this.length) return false
var current = this.head
var index = 0
while(index++ < position){
current = current.next
}
/* data */
current.data = data
return true
}
/* removeAt */
LinkList.prototype.removeAt = function(position){
/* */
if(position<0 || position >= this.length) return null
var current = this.head
if(position === 0){
this.head = this.head.next
}else{
var index = 0
var previous = null
while(index++ < position){
previous = current
current = current.next
}
previous.next = current.next
}
this.length -= 1
return current.data
}
/* remove */
LinkList.prototype.remove = function(data){
/* data */
var position = this.indexOf(data)
return this.removeAt(position)
}
LinkList.prototype.isEmpty = function(){
return this.length === 0
}
LinkList.prototype.size = function(){
return this.length
}
}
/* */
var list = new LinkList()
list.append('a')
list.append('b')
list.append('c')
console.log(list.toString()) /* a b c */
list.insert(3,'d')
console.log(list.toString())/* a b c d */
console.log(list.get(2)) /* c */
console.log(list.indexOf('d')) /* 3 */
list.update(1,'bbb')
console.log(list.toString()) /* a bbb c d */
console.log(list.removeAt(2)) /* c */
console.log(list.toString())/* a bbb d */
console.log(list.remove('a'))
console.log(list.toString())/* bbb d */
console.log(list.isEmpty()) /* false */
console.log(list.size()) /* 2 */
</script>
이상은 자바스크립트 봉인 단방향 체인 테이블의 예시 코드에 대한 상세한 내용입니다. 자바스크립트 봉인 단방향 체인 테이블에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.