자료구조 전반부 키워드 정리

Roh

2020/10/19

자료구조 렉쳐노트 키워드 정리

아주 간단하게 키워드만 정리한 것이므로 내용이 많이 빈약합니다.

자료의 표현

  • 디지털 시스템에서의 자료 표현
    • 모든 형식의 자료를 2진수 코드로 표현하여 저장 및 처리
    • 2진수 코드의 단위
      • 8비트 = 2니블 = 1바이트
      • n개의 비트로 \(2^n\) 개의 상태표현
  • 수치자료의 표현
    • 10진수의 표현
      • 존 형식
      • 팩 형식
    • 2진수의 정수 표현
  • 문자자료의 표현
    • 문자에 대한 이진수 코드를 정의하여 사용
    • 문자에 대한 이진수 코드표
      • BCD코드: 6비트를 사용하여 문자표현
      • EBCDIC코드: 8비트를 사용하여 문자표현
      • ASCII코드: 7비트를 사용하여 문자표현
  • 기타자료의 표현
    • 논리자료
    • 포인터 자료
    • 문자열 자료

소프트웨어 생명주기

  • 생명주기
    • 요구분석 -> 시스템 명세 -> 설계 -> 구현 -> 테스트 -> 유지보수

알고리즘

성능분석 - 존 형식의 표현 - 공간 복잡도 - 알고리즘을 프로그램으로 실행하여 완료하기까지 필요한 총 저장 공간의 양 - 공간복잡도: 고정공간 + 가변공간 - 시간 복잡도 - 알고리즘을 프로그램으로 실행하여 완료하기까지의 총 소요시간 - 시간 복잡도 = 컴파일 시간 + 실행 시간 - Big O notation

배열 - 같은 자료형을 가진 자료들을 나열하여 메모리에 연속적으로 저장하여 만든 자료들의 그룹 - 인덱스 - 배열의 요소를 간단히 구별하기 위해 사용하는 번호 - C에서 인덱스는 항상 0부터 시작 - 모든 자료형에 대해서 배열로 구성 가능 - 구성 형태에 따라 1차원 배열, 2차원 배열, 3차원 배열, …

  • 1차원 배열
    • 자료형 배열이름[배열 요소의 개수]
      • char c[100];
      • int i[100];
  • 2차원 이상의 배열
    • 자료형 배열이름 [배열크기] [배열크기] … [배열크기]

포인터 - 변수의 메모리 주소값 - 포인터변수 - 주소값을 저장하는 특별한 변수 - 포인터 변수가 어떤 변수의 주소를 저장하고 있다는 것은 포인터 변수가 그 변수를 가리키고 있다는 의미 - 포인터 변수를 이용하여, 연결된 주소의 변수 영역을 엑세스 함

  • 포인터 사용의 예 int i; int*ptr = &i; int 형 변수 i를 선언했을 때에 저장된 메모리 번지를 150번지라고 한다면, 변수 i의 주소를 포인터 ㅍ변수 ptr에 저장하면, ptrdpsms apahflwnth 150이 저장되므로, 포인터변수 ptr은 150번지의 변수i 를 가리키는 상태가 된다.

  • 포인터 선언 형식 자료형 *포인터변수이름; 여기서 자료형은 포인터변수 자체의 자료형이 아니라, 포인터 변수에 저장할 주소에 있는 일반 변수의 자료형이다.

일반변수이름과 구별하여 변수이름 앞에 ’*’ 를 표시하여 포인터변수임을 나타낸다.

포인터 연산 - 주소 연산자: & - 변수의 주소를 구하기 위해 사용 - 변수앞에 &를 사용하여 그 변수의 주소를 사용 포인터변수 = & 변수; - 사용할 주소 영역의 변수와 포인터변수는 같은 자료형으로 선언

  • 참조 연산자: *
    • 저장된 주소에 있는 값(변수에 저장된 값)을 액세스 하는 연산자
    • 사용방법1
      • 지정한 값을 포인터가 가리키고 있는 주소에 저장
        *포인터 변수 = 값;
    • 사용방법2:
      • 포인터가 가리키는 주소에 있는 값을 변수에 저장
        변수 = *포인터 변수;

구조체

  • 구조체도 배열처럼 여러 개의 데이터를 그룹으로 묶어서 하나의 자료형으로 정의하고 사용하는 자료형
    • 배열은 같은 자료형만을 그룹으로 묶을 수 있지만, 구조체는 서로 다른 자료형을 그룹으로 묶을 수 있으므로 복잡한 자료 형태를 정의하는데 유용하게 사용됨.

TBC…