포인터란?

포인터
는 번지에 대한 기호화된 표현을 말한다.

즉, 주소를 말한다고 할 수 있다.

int temp;

temp라는 이름을 가진 변수가 선언되면

int형은 4바이트 메모리로 시스템이 할당을 해주고

각 바이트들은 다 주소가 있게 마련이다.

그 주소들이 포인터가 되는것이다.


포인터변수란?

말 그대로 포인터들을 담는 변수가 되는 것이다.

포인터변수에는 주소들만 저장할수 있게된다.

예를 들어 int *temp 이런식으로 포인터변수 정의를 할수 있는데

이렇게 되면 정수가 저장된 곳의 위치를 가르킬 수 있게 되는 것이다.

그러므로 temp = 5; 이런식의 표현은 되지않는다.

 int *temp;
 int t = 2;

 temp = &t;

cout<<*temp;  이런식으로 하면 temp포인터변수가 가르키고있는 값 2가 출력하게된다.

cout<<temp;  temp포인터변수에있는 가르키고있는 포인터가 출력된다. 즉, 주소가 출력된다.

cout<<&temp; temp포인터변수에 주소가 출력된다.

물론 주소는 4바이트니까 연속적으로
0x12FF60
0x12FF61
0x12FF62
0x12FF63
저장되지만 &temp로 출력을 하게되면 가장앞에 주소(60)가 출력되게된다.



포인터를 사용하므로서 생기는 장점은 차차 포인터를 정리하면서 마지막에 정리하겠다.

p.s  아 그리고 포인터들은 int *temp; 나 char * temp 나 다 4바이트씩 메모리를 가지게된다.






'프로그래밍 기초 > C포인터' 카테고리의 다른 글

문자열 포인터  (0) 2010.05.25
2차원 포인터 배열  (0) 2010.05.25
배열포인터의 특징  (0) 2010.05.25
2차원 배열포인터와 대상체  (0) 2010.05.20
배열과 포인터  (0) 2010.05.19
Posted by 아몰라

연결리스트를 위해 구조체를 정의하였다.


typedef struct TreeNode{
char * data;
struct TreeNode * left;
struct TreeNode * right;
}TreeNode;

그리고 3가지의 순회방법이 있는데

전위, 중위, 후위가 있다.

전위는
root-left-right
중위는
left-root-right
후위는
left-right-root


트리구조는 이렇게 만들었다.


순회를 시키면
이런 순으로 트리를 순회하는 것이다.

'프로그래밍 기초 > 자료구조 & 알고리즘' 카테고리의 다른 글

유전 알고리즘  (0) 2010.06.10
영향력 분포도  (0) 2010.06.10
트리의 배열표현 방법  (0) 2010.05.14
큐 만들기  (0) 2010.05.14
스택만들기  (0) 2010.05.13
Posted by 아몰라

우선 이진트리란 루트노드가 있으면  하나의 루트노드당 왼쪽노드와 오른쪽노드 두개의 노드만 있을 수 있는 트리 구조이다.

배열로 이진트리를 표현하는 방법은 부모 노드의 인덱스가 i라하면
왼쪽자식노드는 [i*2] 오른쪽자식노드는[i*2+1]이 된다.

반대로 자식의 부모를 알아볼려고 할 때는 [i/2]를  하여서 나온 몫이 부모가 되게 된다.
그러므로 루트노드는 1부터 시작한다. 아무리 나눠도 0으로 나눌수 없기 때문이다.

'프로그래밍 기초 > 자료구조 & 알고리즘' 카테고리의 다른 글

영향력 분포도  (0) 2010.06.10
연결리스트를 이용한 이진트리의 순회방법  (0) 2010.05.14
큐 만들기  (0) 2010.05.14
스택만들기  (0) 2010.05.13
LCD 디스플레이  (0) 2010.05.13
Posted by 아몰라