C++프로그래밍
2013.04.24~25_연결리스트_함수활용
▶ 연결리스트 함수의 활용_ #include #include #include typedef struct node { char data; struct node *next; }NODE; void print_list(NODE *); int count(NODE *); void loop_free(NODE *); void free_list(NODE *); void concatenate(NODE *, NODE *); NODE *search( NODE *, char ); NODE *append( NODE *, NODE * ); int main() { FILE *fp; NODE *temp = NULL; NODE *list = NULL; NODE *list2 = NULL; char ch; if((fp = fopen("10..
2013.04.23_동적할당_
▶ 동적할당을 이해해보자! 예제 - 10_4.c #include #include // malloc() 함수 typedef struct node { char data; struct node *next; }NODE; int main() { NODE *list; NODE *temp; list = (NODE *)malloc(sizeof(NODE)); // list 에 주소값을 넣고 동적메모리할당 list->data='a'; // 동적할당한곳의 data에 'a' 값을 넣음. temp = list; // temp 에 동적할당받은 list 주소값을 넣음. temp->next = (NODE *)malloc(sizeof(NODE)); // temp->next에 동적할당을 받는다. temp = temp->next; // ..
2013.04.22_연결리스트_free()기초
▶ 연결리스트 기초#include #include typedef struct node { char data; struct node *next; }NODE; int main() { NODE *list; NODE *temp; list = (NODE *)malloc(sizeof(NODE)); list->data = 'a'; list->next = (NODE*)malloc(sizeof(NODE)); list->next->data = 'b'; list->next->next = (NODE*)malloc(sizeof(NODE)); list->next->next->data = 'c'; list->next->next->next = NULL; // 연결리스트의 출력 temp = list; while(temp != NULL..
2013.04.19_연결리스트의 구조
▶ 연결리스트의 구조 #include typedef struct list { int data; struct list *next; // 구조체 자신을 포인터로 가르킨다. }LIST; int main() { LIST a = {3,0}; LIST b = {4,0}; LIST c = {5,0}; LIST *p; a.next = &b; b.next = &c; for(p=&a; p!=0 ; p=p->next) { printf("%d->", p->data); } printf("NULL\n"); return 0; } ▶ &a ( a 의 주소 : a.next ) 에 &b ( b 의 주소 : 예를들어 2000 ) 를 넣고, &b ( b 의 주소 : b.next ) 에 &c ( c 의 주소 : 예를들어 3000 ) 을 넣어..
2013.04.18_연결리스트_동적자료형/정적자료형
▶연결리스트_동적자료형/정적자료형 정적자료형 : 크기가 프로그램의 선언부에서 한번 정해지면 바뀔 수 없다. 데이터의 삽입과 삭제가 자유롭지 못하다. 또, 메모리를 사용하는데 비효율적이다 ex) 게임 로그인 500만명을 예상하고 메모리를 잡아놨는데, 20명이 로그인을 함. 낭비중에 낭비! 동적자료형 : 프로그램의 실행 도중 필요에 따라 변수를 생성시키거나 소멸시킬 수 있다. 프로그램 실행시 한번 선언된 변수는 함수의 실행이 종료될 때 까지 지속되는 정적자료형과는 다른 개념이다. 동적자료형의 변수는 정적자료형의 변수처럼 변수 자체가 이름을 갖는 것이 아니라 포인터변수(참조변수)를 이용하여 간접적으로 접근한다. 이때 참조변수는 동적변수의 주소를 가지고 있다.(심볼테이블에 안적힘) ****************..
2013.04.17_구조체 포인터변수사용
▶ 구조체 포인터 변수 #include #include typedef struct { int x; int y; }POINTER; double distance(POINTER *p1, POINTER *p2); // 아무리 구조체의 byte 수가 많아져도 포인터를 사용하면 // 4 byte 씩만! 사용하므로 상당히 효율적이다! int main() { POINTER p1; POINTER p2; printf("please enter x & y coordinate : "); scanf("%d %d", &p1.x, &p1.y); printf("please enter x' & y' coordinate : "); scanf("%d %d", &p2.x, &p2.y); printf("distance : %6.3f\n", d..