본문 바로가기
  • hazard_dev@__
  • hazard_dev@__

C언어17

[C]C언어 구조체 활용 및 기초 문법(struct, typedef) Really Powerful Programming Language C C언어에서는 자바나 C++와 같이 클래스는 없지만, 데이터의 집합체라고 불릴 수 있는 구조체가 존재하죠, 다른 객체 지향 언어부터 학습을 하신 분이라거나, 공부해오신 분은 생각보다 이 C언어의 문법에 쉽사리 익숙해지지 않습니다. 그중에서 구조체에 대해서 학습을 해보고자 합니다. 구조체는 말 그대로 건물의 형태와 같습니다. 그 구조체 내부에 위와 같이 정수형 변수 a와 문자열 변수 name이 있다고만 가정하면, 메모리는 당연히 우선 정수형 바이트 4바이트를 선점합니다. 그리고, 문자열의 사이즈를 확인할 수 없기 때문에 값이 복사되거나, 대입될 때 까지는 메모리를 문자열 포인터 변수만큼 차지하게 됩니다. 이외에도 다른 변수들 또한 메모리를.. 2021. 2. 3.
트리자료구조_on c[2] 본 포스트는 c언어를 중심으로 작성되었습니다. 트리자료구조_on c[2] 저번 포스트에 이어 트리자료구조에 대해서 포스팅 해나가도록 하겠습니다. 순차리스트를 이용하여 이진트리에 대해서 이해해 보도록 하겠습니다. 위와 같은 이진자료구조가 있습니다. 그렇다면 논리적 구조에서 어떻게 표현될지 확인해 보겠습니다. [0] [1] A [2] B [3] C --- --- [n] O 위 와 같이 표현됨을 알 수 있습니다. 즉 루트를 인덱스[1]으로 보았을 때 좌측으로 부터 우측의 방향대로 인덱스가 매겨져가며 아래로 순차적으로 내려갑니다. 정리하자면, J와 K의 부모노드는 E가 맞습니다. 인덱스 번호로 보았을 때, [10][11]은 [5]부모노드를 담고 있는것이죠 그렇다면 연결리스트를 이용하여 이진트리를 구현해보도록 하.. 2020. 3. 9.
트리자료구조_on c[1] 본 포스트는 c언어를 중심으로 작성되었습니다. 트리자료구조_on c[1] 저번 스택, 큐에 이어 트리 자료구조에 대해 포스팅을 할까 합니다. 트리 말 그대로 트리입니다. 나뭇가지 처럼 뻗어져 나가는 것 처럼 생겼습니다! 아주 쭉쭉 뻗어져 나가는 것이 보기 좋습니다! 위를 보듯 트리자료구조는 리스트, 스택, 큐 와 다르게 1:1 선형구조가 아니라 1:다, 즉 1:n 의 비선형 자료구조를 지닙니다. 흔히 계층형 자료구조라고도 합니다. 우리가 흔히 볼 수 있는 가족 관계도, 기관의 조직도 등이 이에 속한다고 보시면 됩니다. 위의 논리적 구조를 따릅니다. 최상단에 위치한 노드가 최상위 노드, 즉 트리의 시작점이 됩니다. 최상단 트리는 현재 7개의 노드를 가지고 있습니다. 보통 시작하는 노드를 루트라고 합니다. .. 2020. 3. 4.
큐에 대한 가벼운 생각 본 포스트는 c언어와 뇌내 생각으로 작성되었습니다. 큐에 대한 가벼운 생각 스택도 있고 아직 포스트를 하지못한 데크도 있는데 큐를 써야하는 이유는 뭘까 생각해보았습니다. 이는 결국 컴퓨터 운영체제 와 맞물려 있던 것 같습니다. 자세한 건 물론 구글링이나 msdn을 참고해 생각을 보충하면 되지만, 그전에 생각을 정리하기 위해 앞서 포스팅을 하고 가볍게 생각해보려합니다. 컴퓨터 운영체제는 우리도 모두 알다시피 요청한 작업을 차례대로 처리합니다. 쉽게 생각하자면, 프로그램 a,b가 있을때 a를 먼저 실행시키고 b를 그 후 실행시키면 a뒤에 b가 프로세스작업에 따라 붙는 이런 상황들 때문인거죠. 이 말은 즉슨 "최적화가 용이하다" 라고 생각해볼 수 있었습니다. 운영체제에서의 큐는 그럼 어떻게 동작되는지 가볍게 .. 2020. 3. 2.