220309 TIL

Dzeko·2022년 3월 9일
0

개발일지

목록 보기
54/112
post-thumbnail

Today I Learned


1. CS 스터디

7장 데이터 구조와 처리(p.289 ~ p.294)

동적 메모리 할당

배열 등의 변수가 사용하는 메모리는 정적이다. 하지만 리스트의 노드는 동적이다. 필요에 따라 생기기도 하고 사라지기도 한다. 이런 동적인 대상에 사용할 메모리를 힙에서 얻는다. 기술 발전의 부작용으로 작은 기계도 필요한 양보다 훨씬 많은 RAM을 제공하는 경우가 있는데 이런 경우 메모리를 정적으로 할당하는 편이 낫다.

효율적인 메모리 할당

노드와 문자열을 동시에 할당하면 부가 바이트의 부가 비용을 줄일 수 있다.

가비지 컬렉션

자바나 자바스크립트는 포인터는 없지만 가비지 컬렉션을 구현한다. 포인터 대신 참조를 사용한다. 포인터를 추상화해서 비슷한 기능을 제공하지만 실제 메모리 주소를 노출하지 않는다.

이중 연결 리스트

단일 연결 리스트의 delete 함수는 삭제하려는 원소의 바로 앞 원소를 찾아야해서 상당히 느리다. 이를 해결해주기 위해 이중 연결 리스트가 있다. 이중 연결 리스트는 노드에 다음 원소에 대한 포인터뿐만 아니라 인전 원소에 대한 포인터도 들어있는 리스트다. 노드당 부가 비용은 2배가 되지만 delete 시 노드를 앞에서부터 방문할 피룡가 없어진다. 공간/시간의 트레이드 오프인 것이다.






To Do

1. 完) 최종프로젝트 잔디 프로토 타입 구현

2. 完) 알고리즘 최소 한 문제 - 220309's Algorithm

3. 完) CS스터디 정리하기






Today's Short Report

CS스터디가 폭파됐다.. 혼자 해야지
profile
Hound on the Code

0개의 댓글