JavaScript 패키지된 단방향 체인 테이블의 예제 코드

JavaScript를 사용하여 단방향 체인 테이블을 봉인합니다.
1. LinkList의 클래스를 봉인하여 체인 테이블 구조를 나타냅니다.
2. LinkList 클래스에 노드의 정보(data와next)를 봉인하는 Node 클래스가 있습니다.
3. 체인 테이블에 두 개의 속성을 저장한다. 하나는 체인 테이블의 길이이고 하나는 체인 테이블의 첫 번째 노드이다.
4. 체인 테이블을 봉인하는 일반적인 방법:
  • append(element): 목록 끝에 새로운 항목을 추가하고 싶습니다
  • insert(position,element): 목록의 특정 위치에 새로운 항목을 삽입합니다
  • get(position): 대응하는 위치의 요소 가져오기;
  • indexOf(element): 요소가 체인 테이블에 있는 인덱스를 되돌려주고 체인 테이블에 이 요소가 없으면 -1을 되돌려줍니다
  • update(position,element): 특정한 위치의 요소를 수정합니다
  • removeAt(postion): 목록의 특정 위치에서 항목을 제거합니다
  • remove(element): 목록에서 하나를 제거합니다
  • isEmpty (): 체인 테이블에 요소가 포함되지 않으면true로 돌아가고, 그렇지 않으면false로 돌아갑니다
  • size(): 체인 테이블에 포함된 요소의 개수를 되돌려줍니다
  • toString(): 체인 테이블 요소의 값을 출력합니다
  • 
    <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>
    이상은 자바스크립트 봉인 단방향 체인 테이블의 예시 코드에 대한 상세한 내용입니다. 자바스크립트 봉인 단방향 체인 테이블에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기