0.1 자료구조

김수환·2024년 2월 4일
0

자료구조란?

In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data.
More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.

CS 에서 자료구조는 일반적으로 데이터에 대한 효율적인 접근을 위해 선택되는 데이터 구성, 관리 및 저장 형식이다.
엄밀히 말해, 자료구조는 데이터의 값, 그 사이의 관계, 데이터에 적용될 수 있는 기능이나 연산의 집합이다.

출처 영문위키 : https://en.wikipedia.org/wiki/Data_structure

Physical? x
-> Logical

ADT (Abstract Data Type)

ADT specifies:

  • Data stored // 데이터 저장
  • Operations on the data // 데이터 사용
  • Error conditions associated with operations // 오류 관리

➣ 자료를 관리하기 위한 추상적인 개념

그 개념을 익히고 구현을 하시면 됩니다

시간복잡도?

Big O notation

알고리즘의 효율성을 표기해주는 표기법

수학적 정의


➣ 다항식의 차수중 가장 큰 차수

이산수학에서 배웠다고 생각하고 이 정도 설명만 합니다. 자료구조 이론시간에 가르쳐 줘요. 모르겠으면 독학하시고 물어보세요.
밑에 링크 참고하세요
https://noahlogs.tistory.com/27

포인터

데이터가 저장된 메모리의 주소값을 저장하는 변수
메모리의 주소, 즉 '어디'인지(=위치 정보)를 저장하는 전용 변수!

class Node {
};


int main() {
    Node *node1 = new Node;
    Node *node2 = node1;
    
    cout << node1 << endl;
    cout << node2 << endl;
    cout << &node1 << endl;
    cout << &node2 << endl;
}

결과

0x6000004ac020
0x6000004ac020 // 둘이 똑같죠?
0x16b877548
0x16b877540 // 둘이 다르죠

위에 두개 : new Node 로 선언한 객체를 출력
아래 두개 : node1, node2의 각각의 주소

int a = 10;
int* ptr = &a;

cout << a << endl; // 1
cout << &a <<endl; // 2
cout << ptr << endl; // 3
cout << *ptr << endl; // 4
cout << &ptr << endl; // 5

결과가 똑같이 나오는 거는?

실습 주의사항

  • 배열 100칸 할당하고 100번째 접근하지 않기
    우리는 0부터 셉니다.
  • 무한 루프, 무한 재귀 빠지지 않기

스터디 주의사항

  • 모르면 물어보세요 (카톡 보내놓으면 늦게라도 답장 줄게요)
  • 쉬우면 안나오셔도 됩니다 (사연 없이 안나오면 2솔 인증 필수 😋)
  • 본인이 짠 코드 github에 올려주세요 ㅠ
  • 열심히 참여 부탁드려요
profile
hello human

0개의 댓글