[데이터 구조] [2] 배열 이 실현 하 는 선형 표 (선형 표 의 순서 저장 구조)

데이터 구조 배열 선형 표 실현
배열 을 통 해 간단 한 선형 표를 실현 하 였 다.
기능:
  • 배열 꼬리 에 요 소 를 추가 합 니 다
  • 배열 이 지정 한 위치 에 요 소 를 추가 합 니 다
  • 아래 표 시 된 요소 에 따라 요 소 를 가 져 옵 니 다
  • 아래 표 시 된 요소 에 따라 요 소 를 삭제 합 니 다
  • 원소 에 따라 원소 삭제
  • 현재 배열 길이 가 져 오기
  • 현재 배열 이 비어 있 는 지 판단
  • 배열 요소 인쇄
  • public class ArrayListTest {
    
    	private Object[] elements;//    
    
    	private  static final Object[] EMPTY_ARRAY = {};//   
    
    	/**
    	 *        
    	 */
    	public ArrayListTest(){
    	    this.elements = EMPTY_ARRAY;
    	}
    	
    
    	/**
    	 *          
    	 */
    	public void add(Object element){
    	    //      ,                    
    	    Object[] newArr = new Object[elements.length + 1];
    	    //    
    	    for(int i = 0; i< elements.length; i++){
    	    	newArr[i] = elements[i];
    	    }
    	    //          
    	    newArr[elements.length] = element;
    	    //            
    	    this.elements = newArr;
    	}
    	
    	/**
    	 *            
    	 */
    	public void insert(int index, Object element){
    	    //        
    	    if(index < 0 || index >= elements.length){
    	    	throw new RuntimeException("      ");
    	    }
    	    //      ,                    
    	    Object[] newArr = new Object[elements.length + 1];
    	    //    
    	    for(int i = 0; i< newArr.length; i++){
    		if(i < index){
    	       	    //index       
    		    newArr[i] = elements[i];
    		}else if(index == i){
    		    //index       element
    	       	    newArr[i] = element;
    		}else{
    		    //index             -1   
    		    newArr[i] = elements[i - 1];
    		}
    	    }
    	    //            
    	    this.elements = newArr;
    	}
    	
    	/**
    	 *         
    	 */
    	public Object get(int index){
    	    //        
    	    if(index < 0 || index >= elements.length){
    		throw new RuntimeException("      ");
    	    }
    	    return elements[index];
    	}
    	
    	/**
    	 *         
    	 */
    	public void delete(int index){
    	    //        
    	    if(index < 0 || index >= elements.length){
    		throw new RuntimeException("      ");
    	    }
    	    //      ,                    
    	    Object[] newArr = new Object[elements.length - 1];
    	    //    
    	    for(int i = 0; i< newArr.length; i++){
    	    	if(i < index){
    		    //index       
    		    newArr[i] = elements[i];
    		}else{
    		    //  index      
    		    newArr[i] = elements[i + 1];
    		}
    	    }
    	    //            
    	    elements = newArr;
    	}
    	
    	/**
    	 *         
    	 */
    	public void deleteElement(Object object){
    	    Integer index = null;
    	    //           object     
    	    for(int i = 0; i< elements.length; i++){
    		if(object.equals(elements[i])){
    		    index = i;
    		    break;
    		}
    	    }
    	    if(index != null){
    		delete(index);
    	    }else{
    		System.out.println("         ");
    	    }
    	}
    	
    	/**
             *         
             */
    	public int size(){
    	    return elements.length;
    	}
    	
            /**
             *           
             */
            public boolean isEmpty(){
                return elements.length == 0;
            }
        
            /**
             *     
             */
    	public void show(ArrayListTest arrayTest){
    	    System.out.println(Arrays.toString(arrayTest.elements));
    	}
    	
    	public static void main(String[] args) {
    	    ArrayListTest arrays = new ArrayListTest();
    	    arrays.add(1);
    	    arrays.add(2);
    	    arrays.add(3);
    	    arrays.show(arrays);//[1, 2, 3]
    		
    	    arrays.insert(1, 0);
    	    arrays.show(arrays);//[1, 0, 2, 3]
    		
    	    Object arrObj = arrays.get(1);
    	    System.out.println(arrObj);//0
    		
    	    arrays.delete(2);
    	    arrays.show(arrays);//[1, 0, 3]
    		
    	    arrays.deleteElement(3);
    	    arrays.show(arrays);//[1, 0]
    		
    	    System.out.println(arrays.size());//2
    	    System.out.println(arrays.isEmpty());//false
    
    	}
    }

    장점:
  • 1 층 은 배열 로 색인 에 따라 조회 할 수 있 고 조회 효율 이 높다
  • .
  • 구 조 는 무 작위 액세스 구조 로 선형 표 의 임 의 요 소 를 수시로 추출 할 수 있 고 액세스 시간 복잡 도 는 O (1)
  • 이다.
    단점:
  • 액세스 요 소 는 배열 에 대해 요 소 를 이동 하거나 배열 을 복사 해 야 합 니 다. 데이터 가 클 때 효율 이 낮 습 니 다
  • 좋은 웹페이지 즐겨찾기