js 단 방향 링크 의 기본 실현

3058 단어 js알고리즘
단 방향 링크 
    1. 단 방향 링크 의 패키지
    싱글 체인 시 계 는 양 방향 링크 와 마찬가지 로 js 의 인용 유형 은 잘 모 르 겠 습 니 다. 이곳 의 this. head 는 지침 으로 보 는 지 머리 결점 으로 보 는 지 모 르 겠 습 니 다.
    저 는 여기 서 this. head 를 노드 데 이 터 를 복사 하 는 동시에 this. head 의 것 을 지침 으로 삼 아 첫 번 째 새로운 노드 를 가 리 켰 습 니 다. (이렇게 생각 하지 않 으 면 더 이상 볼 수 없습니다) 제 생각 대로 첫 번 째 노드 를 삽입 할 때 는...         this. head. next = new Node. 먼저 이 지식 을 기록 해 보 세 요.
    잠시
 function Node(data){
            this.data=data;
            this.next=null
        }

        //   
        this.head=null
        this.length=0;

 
2. 끝부분 에 노드 추가
 LinkedList.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
                }
                //      next      
                current.next=newNode
            }
            this.length+=1
        }

3. 문자열 읽 기
 LinkedList.prototype.toString=function(){
            var current=this.head;
            var listString=""
            while(current){
                listString+=current.data+" "
                current=current.next
            }
            return listString
        }

4. 어떤 데이터 값 가 져 오기

        LinkedList.prototype.get=function(position){
            if(position<0||position>=this.length) return null
            var current=this.head
            var index=0
            while(index++

5. 존재 치 여부
 LinkedList.prototype.indexOf=function(data){
            var current=this.head
            var index=0
            while(current){
                if(current.data=data){
                    return inddex
                }
                current=current.nextindex+=1
            }
            return -1
        }

 
 6. 업데이트 값
 LinkedList.prototype.update=function(position,newData){
            if(position<0||position>=this.length)return false
            var current=this.head
            var index=0
            while(index++

7. 데이터 삭제
 LinkedList.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++

 

좋은 웹페이지 즐겨찾기