자료구조

[C언어] 리스트

성수아자 2022. 4. 20. 22:59

작년 이맘 때 즈음 포인터와 주소를 알지도 못한 채 자료구조를 접하였다. 다른 웹개발 입문 강의에서 배우기로 변수에 값이 담긴다 정도로만 배운 나는 자료구조를 코드 복붙과 복붙한 코드의 함수를 사용하는 것 외엔 할 수 있는 것이 없었다. 배열은 대부분의 문법에서 지원하는 자료구조라 배열을 이용한 리스트는 그나마 익숙했지만 연결 리스트로 넘어가는 순간 헷갈림의 순환으로 빠져버렸다. 하나의 객체(또는 구조체) 안에 데이터와 다음 객체를 가리키는 변수가 있다고 하는데 다음 객체를 가리키는 변수가 와닿지 않았다. 변수 안에 값이 있는 건지 그 값 안에 왜 다음 값이 있는 지 .. 이는 C언어의 포인터를 알고 이해되기 시작했다.

 

리스트가 어디에 쓰이는 지 생각해보면 회사 경험이 적은 나로선 블록체인 정도 떠오른다. 강의 하나 들어본 정도의 지식으로 설명해보면 블록체인은 리스트라는 자료구조가 분산되어 누구나 볼 수 있고 채굴자는 이 리스트를 하나씩 늘려가며 자기의 이름을 적고 코인을 얻는다. 자료구조의 리스트는 수정과 삭제가 가능하지만 블록체인은 해시 함수를 거쳐 만들어지므로 현재 컴퓨팅 파워로는 불가능하다고 한다. 즉 절대 수정 불가능하고 누구에게나 공개되어 있어 인증이 비교적 수월한 자료구조라고 할 수 있다.

 

3~4개월 전 유튜브에서 엄청나게 블록체인에 대해 소개하는 영상을 꽤 볼 수 있었다. 4차산업 혁명과 더불어 인공지능, 딥러닝, 블록체인 등 꽤나 혹할만한 키워드들이 영상 썸네일과 제목에 등장했다. 내용을 다 보진 않았지만 대충 메타버스가 대세가 될테니 공부를 많이해서 미리 제 2의 강남을 메타버스 세계에서 투자 해놓자로 들렸다. 흠 차라리 메타버스 주제로 책을 팔아서 강남 집사는 게 빠르지 않을까 싶다.

'자료구조' 카테고리의 다른 글

[C언어] NULL 포인터  (0) 2022.07.04
[C언어] 큐와 덱  (0) 2022.04.24
다른 시스템 속 자료구조  (0) 2022.04.22
[C언어] 스택  (0) 2022.04.22
[C언어] 자료구조  (0) 2022.04.20