'Programming > etc' 카테고리의 다른 글

Python IDLE 한글 설정  (0) 2013.02.13
[Python] IDLE Color Theme  (0) 2013.02.01
Eclipse 단축키  (0) 2012.12.26
Eclipse 테마 설정  (0) 2012.12.26
Eclipse 설치 및 컴파일 설정  (0) 2012.12.26
Posted by scii
:

Compiling HDK Code

Programming/HDK 2012. 12. 30. 17:25 |

'Programming > HDK' 카테고리의 다른 글

Visual C++ 2008 에서 HDK 변수들  (0) 2013.03.16
HDK User Reference  (0) 2013.01.08
Houdini Development Kit 관련 사이트  (0) 2012.12.26
Posted by scii
:

더미 노드가 추가된 형태는 다음과 같다. 

head -> Dummy -> 데이터1 -> 데이터2 -> 데이터3 -> … -> tail 


더미 노드 두 줄의 코딩으로 많은 양의 코드가 줄었다. 

 





새 노드를 추가할 때, 리스트의 머리와 꼬리 중 어디에 저장을 할 것인가?


- 두 가지 방법 모두 장단점이 있다.


머리에 추가할 경우

장점:    포인터 변수 tail이 불필요하다.

단점:    저장된 순서를 유지하지 않는다.


꼬리에 추가할 경우

장점:    저장된 순서가 유지된다.

단점:    포인터 변수 tail이 필요하다.


어떠한 방법이 더 좋다고 판단할 성격의 문제는 아니란다.

내가 즐겨보는 책의 저자는 머리에 추가하는 방법을 선호한다고 한다. 그 이유는 다음과 같다.

"포인터 변수 tail을 유지하기 위해서 넣어야 할 부가적인 코드가 번거롭게 느껴질 수 있다. 게다가 리스트 자료구조는 저장된 순서를 유지해야 하는 자료구조가 아니다."

라고 말하고 있다.

그리고 많은 수의 자료구조 서적들도 노드를 머리에 추가하는 방식으로 연결 리스트를 구현한다고 한다. 

나도 머리 부분에 노드를 추가하는 것이 더 괜찮은 것 같다고 생각한다.


Posted by scii
:

자료구조를 제대로 공부하려면 다음 세가지 순서를 지켜서 공부해야 한다.


1. 자료구조의 ADT 정의

2. 정의한 ADT의 구현

3. 구현이 완료된 자료구조의 활용


위의 과정을 모두 밟지 않으면, 특히 ADT의 정의를 생략하면 구현도 활용도 이상한 형태로 흘러가기 쉽다.


Posted by scii
:

예제


이 예제에서는 배열의 단점을 분명히 보여주고 있다.

"배열은 메모리의 특성이 정적이어서(길이의 변경이 불가능해서) 메모리의 길이를 변경하는 것이 불가능하다."


위 예제를 실행한 후 0 이하의 값을 입력하지 않고 계속해서 자연수만 입력을 하면 할당된 배열의 길이를 넘어서는 문제가 발생한다. 

이렇듯 특성이 정적인 배열은 필요로 하는 메모리의 크기에 유연하게 대처하지 못한다. 그래서 등장한 것이 '동적인 메모리의 구성' 이다.





프로그램 실행 중에 필요할 때마다 메모리 공간을 마련하는 유일한 방법은 "malloc 또는 그와 유사한 성격의 함수를 호출하는 메모리의 동적 할당" 이다.


연결 리스트의 기본 원리

"필요할 때마다 바구니의 역할을 하는 구조체 변수를 하나씩 동적 할당해서 이들을 연결한다."


동적할당으로 노드를 구성하는 예제)


자료구조는 코드를 통해서 공부하는 과목이 아니다. 코드를 통한 학습 이전에, 그림으로 설명하고 그림으로 이해해야 하는 과목이다.


위의 linked.c의 방식은 적절치 않다. 대표적인 두 가지 이유는 다음과 같다.

1. 연결 리스트의 ADT를 정의하지 않았다.

2. 삽입, 삭제, 조회의 기능이 별도의 함수로 구분되어 있지 않다.


즉, 위의 예제는 연결 리스트와 과련된 코드를 모조리 main 함수에다 집어넣었기 때문에 필요할 때 가져다 쓸 수 있는 형태가 아니다.


Posted by scii
:

Eclipse 단축키

Programming/etc 2012. 12. 26. 18:48 |

단축키


모두 빌드:     ctrl + b

실행:     ctrl + F11

줄 정렬:    ctrl + shift + f

해당 블럭 주석:    ctrl + /

열려진 창 모두 저장:    ctrl + shift + s

찾기:    ctrl + f

Editor로 이동하기(포커스가 다른 곳으로 이동했을 때):    F12

한줄 삭제:     ctrl + d

줄 번호 찾기:     ctrl + l

편집창 이동(탭 이동):    ctrl + shift + F6

마지막 위치로 커서 이동하기:    ctrl + q

컴파일 오류 발생시 다음 오류 지점으로 바로 가기:    ctrl + .

컴파일 오류 발생시 다음 오류 지점으로 바로 가기:    ctrl - ,

해당 함수나 변수의 정의 선언으로 가기:    F3

해당 함수나 변수를 참조하거나 사용하는 부분을 검색:    ctrl + shift +g


디버그 관련

Breake Point:    ctrl + shift + b

디버깅 시작:    F11

다음 코드로 넘어가기:     F5

함수 블럭 내로 들어가기:     F6

함수 블럭 내에서 빠져나오기:     F7

Break Point가 존재하는 곳으로 들어가기:     F8

현재 라인까지 실행:    ctrl + r


'Programming > etc' 카테고리의 다른 글

[Python] IDLE Color Theme  (0) 2013.02.01
Visual Studio 디버깅하는 방법  (0) 2013.01.03
Eclipse 테마 설정  (0) 2012.12.26
Eclipse 설치 및 컴파일 설정  (0) 2012.12.26
코드 분석  (0) 2012.12.25
Posted by scii
:

Eclipse 테마 설정

Programming/etc 2012. 12. 26. 18:45 |

1. Help - Eclipse Maket Place 를 클릭.


2. theme를 검색하여 컬러 테마를 설치한다.



3. Next를 눌러 설치를 완료했다면..

Window - Preferences 를 클릭하여 자기가 원하는 테마를 선택하여 테마가 바뀐다.


'Programming > etc' 카테고리의 다른 글

[Python] IDLE Color Theme  (0) 2013.02.01
Visual Studio 디버깅하는 방법  (0) 2013.01.03
Eclipse 단축키  (0) 2012.12.26
Eclipse 설치 및 컴파일 설정  (0) 2012.12.26
코드 분석  (0) 2012.12.25
Posted by scii
:

Eclipse 설치


http://www.eclipse.org/downloads/ 



다운을 받는다. 

그 후 실행파일을 실행하면 이클립스가 실행된다.





C/C++ 컴파일 설정하기


1. 이클립스의 Help - Install New Software를 클릭한다.

2. 그 다음, Available Software Sites를 클릭. 내 이클립스는 Juno이기 때문에 이것을 선택하였다.



3. Work with에 이것을 설정하고 C/C++을 컴파일하기 위한 4가지를 선택해서 Next를 누른다.

다 진행하고 재시작하면 C/C++ 컴파일을 위한  준비 완료!



4. 컴파일 해보기



모두 빌드:     ctrl + b

실행:     ctrl + F11

줄 정렬:    ctrl + shift + f


'Programming > etc' 카테고리의 다른 글

[Python] IDLE Color Theme  (0) 2013.02.01
Visual Studio 디버깅하는 방법  (0) 2013.01.03
Eclipse 단축키  (0) 2012.12.26
Eclipse 테마 설정  (0) 2012.12.26
코드 분석  (0) 2012.12.25
Posted by scii
: