메뉴 건너뛰기

(*.106.188.101) 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 첨부
Extra Form

데이터 구조(Data Structure)란?

- 프로그램에 필요한 데이터를 효율적으로 처리할 수 있도록 데이터 간의 논리적인 관련성을 조직화 하여 표현하는 방법
- 컴퓨터 기억장치에 저장되는 데이터의 형식과 조작에 필요한 연산이 있다.

종류

1.png


정적 데이터 구조(Static Data Structure)
- 미리 할당된 크기의 기억장소에 연속적으로 데이터를 저장한 후 조작이나 연산을 하는 것
- 예) Java의 배열(array) int[] score = new int[10];

  ○ 장점

    - 간단한 구조, 기억장소의 사용을 최소화, 데이터 항목에 대한 빠른 검색이 가능하다.

  ○ 단점

    - 미리 기억장소의 연속된 공간을 확보해야한다. (많은 수의 공간을 확보해야한다면 안좋다.)
    - 한번 공간을 할당하면 크기를 변경(축소 또는 증가)이 어렵다.
    - 데이터 항목의 삽입 또는 삭제에 따른 처리 속도의 저하 (모든 데이터를 한칸씩 이동해야 하기 때문에 처리시간이 늘어난다. )

동적 데이터 구조(Dynamic Data Structure)

  - 데이터 항목을 비연속적인 기억장소에 저장하고 링크(link, 레퍼런스)로 연결하여 조작한다.

  - 예) Java의 벡터(Vector)  Vector score = new Vector(10);  java.util.Vector를 import 해야한다.

  ○ 장점

    - 미리 기억장소의 연속된 공간을 확보할 필요가 없다.

    - 프로그램의 실행 도중에 할당된 공간의 크기를 변경시킬수 있다. 

    - 데이터 항목의 삽입과 삭제가 효율적이다.(자료추가시 링크연결만 바꾸면 된다.)

  ○ 단점

    - 프로그램의 처리 방법이 복잡해진다.

    - 링크의 표현에 따른 저장 공간의 비효율성이 증가 (링크도 데이터를 차지한다.)

java.util.Vector 클래스

프로그램의 실행 도중에 길이가 변경될 수 있는 동적 데이터 구조의 리스트

  - 초기 용량(initial capacity)의 설정이 필요하다.

  - 현재 용량을 초과하면 일정한 길이로 용량이 증가(increment capacity)


생성자

  - Vector() : 초기용량이 10으로 주어진 백터 객체를 생성 예) Vector v = new Vector();

  - Vector(int initialCapacity) : 초기용량(int initialCapacity)과 동일한 길이로 증가하는 백터 객체를 생성 예) Vector v = new Vector(100);

  - Vector((int initialCapacity, int capacityIncrement) : 초기용량(int initialCapacity)과 증가분(capacityIncrement)을 갖는 백터 객체 생성 예) Vector v = new Vector(100, 10);


배열과 유사한 메소드

  - void setElementAt(Base_Type newElement, int index)

  - Base_Type elementAt(int index) : Base_Type은 클래스 타입만 가능하며 기본형(int, double 등)은 불가하다. 꼭 넣어야 한다면 클래스타입으로 넣으면 된다.(Wapper클래스)

  - Enumeration elements() : 벡터의 구성원을 열거형(enumeration) 인터페이스로 반환한다.


항목 추가 메소드

  - void addElement(Base_Type newElement) : 현재 있는 값의 끝에 추가한다.

  - void insertElementAt(Base_Type newElement, int index) : 데이터의 특정위치에 값을 삽입할때 사용한다. 뒤의 값은 한칸씩 이동한다.


항목 삭제 메소드

  - void removeElementAt(int index) : 해당 index의 데이터가 삭제되면서 뒤의 값은 index-1 된다.

  - void removeElement(Object theElement) : 특정한 객체를 넣으면 동일한 값을 찾은뒤 제거해준다.

  - void removeAllElements() : 모든 요소를 삭제하여 빈 벡터로 만들어준다.


검색 메소드

  - boolean contains(Object target) : target의 값이 있는지 찾아보고 있으면 true , 없으면  false

  - int indexOf(Object target) : target이 가리키는 객체의 index위치를 출력하여 준다.

  - int lastindexOf(Object target) : 뒤에서부터 뒤져서 제일 먼저 발견되는 target을 돌려준다.

  - Base_Type firstElement() : 첫번째 데이터를 출력

  - Base_Type lastElement() : 마지막 데이터를 출력


메모리 관리 메소드

  - boolean isEmpty() : 현재 벡터가 비어있는지 출력 비어있으면 true 아니면 false

  - int capacity() : 현재 백테의 용량을 반환한다.

  - int size() : 현재 백터에 포함된 항목의 개수를 반환한다.

  - void trimToSize() : 현재 백터의 용량(capacity)을 현재 항목의 크기(size)로 줄여준다.(압축)


기타 메소드

  - Object clone() : 똑같은 벡터로 복사(복제)해준다.

  - boolean equals(Object ) : 다른벡터가 지금 벡터와 같은지 비교해준다.


java.util.Enumeration 인터페이스

  - 백터 또는 해쉬 테이블(hash table)과 같은 선형 데이터 구조에 포함된 항목을 순서대로 처리할 수 있도록 지원하기 위한 인터페이스


메소드

  - boolean hasMoreElements() : 안에 항목이 더 존재하는지 여부를 확인해준다.

  - E nextElements() : 열거형에서 다음에 오는 항목을 반환(E는 항목에 해당하는 객체로 타입에 따라 달라진다.)

예)//v는 벡터형(java.util.vector) 객체일때..

for(Enumeration e = v.elements(); e.hasMoreElements(); ){ 

//e.hasMoreElements()는 Elements가 더있는지 확인

    System.out.println(e.nextElements()); //데이터를 하나씩 꺼내준다.

} //더이상 Elements가 없으면 false가 출력된다.


연결리스트(Linked List)란?

  - 데이터와 링크(또는 참조)로 표현되는 노드(node)로 구성된 동적 데이터 구조이다.

2.png


java.util.LinkedList 클래스

  - java에서 표준으로 제공하는 연결리스트 클래스이다.


메소드

  ○ 항목 추가

    - boolean add(E o) / void add(int index, E element)

    - boolean addAll(collection c)

    - void addFirst(E o) / void addLast(E o)

  ○ 항목 수정

    - E set(int index, E element)

  ○ 항목 삭제

    - void clear() / E remove() / E remove(int index)

    - boolean remove(Object o) / E removeFirst() / E removeLast()

  ○ 검색

    - E element() / E get(int index)

    - E getFirst() / E getLast()

    - int indexOf(Object o) / int lastIndexOf(Object o)

    - int size()


노드(Node)의 구현

  - 연결 리스트 구현

 public class ListNode {

    private String data;

    private ListNode link;


   public ListNode(){

        link = null;

        data = null;

   }

   public ListNode(String newData, ListNode linkValue){

        data = newData;

        link = linkValue;

   }

   public void setData(String newData){

        data = newData;

   }

   public String getData(){

        return data;

   }

   public void setLink(ListNode newLink){

        link = newLink;

   }

   public ListNode getLink(){

        return link;

   }
 }


내부 클래스(Inner Class)

  - 클래스 내부에 정의된 클래스(Non-static nested class 라고도 함)

용도

  - 프라이버시의 노출(privacy leak)이 염려되는 데이터 구조 등에서 사용하여 

추상화(abstraction)를 지원

예) StringLinkedList 클래스에서 이용하는 ListNode 클래스

구문법

 public class OuterClass{

      Declarations_of_OuterClass_Instance_Variables

      Definitions_of_OuterClass_Methods


      private class InnerClass{

            Declarations_of_InnerClass_Instance_Variables

            Definitions_of_InnerClass_Methods

      }

 }



  1. No Image

    ERD - DBDesigner 4.0.5.6

    ERD - DBDesigner 4.0.5.6    한글 패치: (C:\Program Files\fabFORCE\Data에 압축을 풀고 파일을 덮어씌운다음, 옵션에서 언어를 변경한다.) DBDesigner4_Korean.zip 다운로드 경로 http://fabforce.net/downloads.php 라이센스 : GNU GPL이기 때문에, 기업에...
    Date2016.04.23 Reply1 Views549 file
    Read More
  2. No Image

    ERD (entity-relationship diagram) 개념

    http://www.terms.co.kr/ERD.htm ERD (entity-relationship diagram) ERD[이 알 디]는 전략적 계획이나 또는 하향식 계획에서 자주 사용되며, 개략적인 상부계층의 데이터 다이어그램이다. 데이터의 하향식 계획은 기업을 운영하는데 관련된 실체들을 확인하...
    Date2016.04.23 Reply0 Views481
    Read More
  3. Static Data Structure, Dynamic Data Structure 란?

    데이터 구조(Data Structure)란? - 프로그램에 필요한 데이터를 효율적으로 처리할 수 있도록 데이터 간의 논리적인 관련성을 조직화 하여 표현하는 방법 - 컴퓨터 기억장치에 저장되는 데이터의 형식과 조작에 필요한 연산이 있다. 종류 정적 데이터 구조(St...
    Date2016.04.23 Reply0 Views509 file
    Read More
  4. No Image

    모든 엑셀시트에서 검색문자열을 포함한 셀의 Row 전체 가져오기

    ' 모든 엑셀시트에서 검색문자열을 포함한 셀의 Row 전체 가져오기 ' ' 처리할 엑셀파일이 존재하는 폴더 선택, ' 검색할 문자열을 Input 박스에 입력, ' 폴더내 모든 엑셀파일(모든시트)를 하나씩 검색, ' 해당 문자열을 포함한 셀을 찾아 셀 바탕색을 적색으...
    Date2016.04.18 Reply0 Views502 file
    Read More
  5. No Image

    Windows 에 Oracle Client / TOAD 설치

    토드 설치 : http://m.blog.naver.com/young_0620/220156507513 Windows 에 Oracle Client 설치 오라클 클라이언트 설치 -> 윈도우 pc DBmaster 설치 (오라클 클라이언트 사용시 현재 사용중인 오라클과 버전이 같거나 높은 것을 써야한다.) 클라이언트 pc에서...
    Date2016.04.17 Reply0 Views502
    Read More
  6. Oracle 11g client 설치하기

    Oracle 11g client 설치하기 오라클 데이터베이스가 설치된 서버에 접속하려면 오라클 클라이언트를 사용해야 합니다. 언어 : 다국어 지원 개발사 : Oracle 버전 : 11.2.0.1.0 파일크기 : 587MB 라이센스 : 개인사용자가 비상업적으로만 이용가능, 지원 OS : ...
    Date2016.04.17 Reply0 Views536 file
    Read More
  7. No Image

    오라클 Enterprise,Standard,Personal Edition 비교

    오라클 Enterprise,Standard,Personal Edition 비교 오라클 데이터베이스를 설치할 때 다음 설치 유형 중 하나를 선택할 수 있습니다 Enterprise Edition : Standard Edition 제품에 추가하여 오라클 데이터베이스 옵션 및 데이터베이스 구성 및 관리도구. 데...
    Date2016.04.17 Reply0 Views518
    Read More
  8. No Image

    오즈뷰어 데모 및 제안서, 매뉴얼

    Oz Viewer Demo http://www.forcs.com/?page_id=2252
    Date2016.04.12 Reply0 Views553 file
    Read More
  9. No Image

    출력 마법사(오즈뷰어) 설치 방법 / 웹에 OZ viewer 넣기

    출력 마법사(오즈뷰어) 설치 방법 가. OZ화면이 보이지 않을 때  1. 익스플로러 브라우저를 실행하여 「도구」에서 「인터넷옵션」을 선택 2. 「설정」을 선택 3. 「개체보기」를 클릭 4. 「OZ Viewer 25 001」선택 후, 「삭제」버튼을 클릭하고 없으면       ...
    Date2016.04.11 Reply0 Views889
    Read More
  10. No Image

    [이털남2-440]'양날의 검, 빅데이터를 논하다'

    [이털남2-440]'양날의 검, 빅데이터를 논하다'
    Date2016.04.10 Reply0 Views379
    Read More
  11. No Image

    Oracle_데이터베이스의 성능과 확장성을 개선시키는 5가지 방안

    Oracle_데이터베이스의 성능과 확장성을 개선시키는 5가지 방안
    Date2016.04.10 Reply0 Views453
    Read More
  12. No Image

    ORACLE 기초강좌 모음 #27~30/30

    ORACLE 기초강좌 모음 #27~30/30 * 강좌 중 누락된 강좌가 있습니다^^
    Date2016.04.10 Reply0 Views403
    Read More
  13. No Image

    ORACLE 기초강좌 모음 #1~26/30

    ORACLE 기초강좌 모음 #1~26/30 * 강좌 중 누락된 강좌가 있습니다^^
    Date2016.04.10 Reply0 Views442
    Read More
  14. 빅데이터 - 빅데이터의 활용 사례

    빅데이터 - 빅데이터의 활용 사례  기존에 버려지던 모든 정보들까지분석하고 통계를 내어 전혀 새로운 서비스를 창출하는데 활용되는 빅데이터. 빅데이터 활용 사례에 대해 가볍게 알아보겠습니다. 현재 빅데이터 시장이 빠르게 성장할 것으로 예상되고 기업...
    Date2016.04.09 Reply0 Views568 file
    Read More
  15. 빅데이터, 세상을 바꾸다 YTN 사이언스

    빅데이터, 세상을 바꾸다 YTN 사이언스 게시일: 2013. 12. 26. [YTN 사이언스 기사원문] http://www.ytnscience.co.kr/program/p... 디지털 세상이 찾아오면서 이제는 하루에도 어마어마한 자료들이 생겨나게 됐는데요.2015년에는 7.9ZB나 되는 규모의 데이터...
    Date2016.04.09 Reply0 Views501 file
    Read More
  16. 빅데이터 활용 사례 및 분석_마케팅 전략

    빅데이터 활용 사례 및 분석_마케팅 전략 안녕하세요! 오늘은 빅데이터를 활용한 사례 및 분석을 공유하고자 합니다! 더불어 빅데이터를 활용한 마케팅 전략에 대해서도 포스팅 하려고 합니다. 이해을 돕기 위해 사진과 영상을 활용하고자 합니다. 빅테이터(BI...
    Date2016.04.09 Reply0 Views535 file
    Read More
  17. No Image

    빅데이터 고급기술분석 핵심 / 능력단위 : 빅데이터 분석

    빅데이터 분석 분류 20.정보통신 > 01.정보기술 > 01.정보기술전략·계획 > 05.빅데이터 분석 NCS 직무의 정의 빅데이터 분석은 데이터 집합으로부터 일정한 법칙을 추론하여 결과 및 행동을 예측하기 위하...
    Date2016.04.09 Reply0 Views475 file
    Read More
  18. [IP노믹스] 20대 총선 결과, 빅데이터로 미리 본다

    [IP노믹스] 20대 총선 결과, 빅데이터로 미리 본다 4·13 총선이 5일 앞으로 다가오며 각 여론조사 기관이 다양한 예측 결과를 내놓는 가운데 `빅데이터 기반 선거 예측 시스템`이 개발돼 눈길을 끈다. JPD 빅데이터 연구소(대표 장수진)가 개발한 선거예측 분...
    Date2016.04.09 Reply0 Views519 file
    Read More
  19. 공공정책을 위한 빅데이터 전략지도

    공공정책을 위한 빅데이터 전략지도 작가 GIS United 출판 더숲 발매 2014.06.30 2014년 현재 시점에서 공공기관의 지리정보시스템(GIS)과 빅데이터가 어떻게 활용되고 있는지 확인할 수 있는 자료이다. 저자는 공공기관 프로젝트의 현장 경험을 바탕으로 상세...
    Date2016.04.09 Reply0 Views536 file
    Read More
  20. No Image

    정형 데이터 / 비정형 데이터 / 반정형 데이터

    정형 데이터 즉시 통계적 분석에 사용될 수 있을만한 형태로 정리되고 가공된 데이터를 의미합니다. 대표적인 예로는 엑셀 파일이 있습니다. 각 지역별 인구통계 데이터, 의학 실험 결과에 대한 데이터 등이 행과 열에 맞게 정리된 자료를 정형 데이터라 합니...
    Date2016.04.09 Reply0 Views477
    Read More
목록
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7