전체 글 164

[자료구조]04.연결리스트(Linked List)

0204~0206 복습. 01. 배열: 순차접근(idx)이 가능하지만 크기가 결정되면 변경 못하는 자료구조. Q. 요청시마다 메모리할당 하고싶은데? A. malloc으로 가능, 그렇지만 관리는 불가. =연결리스트(ADT) A - B - C - D - E --->[ + ] A에 접근이 되면 C도 접근이 가능하다.(순차적으로 접근이 가능하다) 또 확장도 가능함. *malloc은 메모리할당방법(동적할당), 연결리스트는 관리방법이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 typedef struct_node{ int data; // 데이터 담을공간 struct _node *next; //연결의 도구 } Node; int main(void){ Node *head = NULL; Node *tai..

[자료구조] 배열을 이용한 리스트구현

01. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 void ListInit(List *plist){ (pdata ->numOfData) = 0; (pdata ->curPostion) = -1; //-1은 아무런 위치도 참조하지 않았음을 의미. } void LInsert(List *plist, LData data){ //#define LIST_LEN 이 있음. if(LIST_LEN numOfData){ return; //puts("저장이 불가능합니다."); } plist->arr[plist->numOfData] = data; (plist->numOfData]+=1; } Colored by Color Scripter cs 02. 1 2 3 4 5 6 7 8 9 10 11 12 13 14..

[자료구조]재귀함수

1. 호출관계 를 중요시할것. 피보나치 수열. 0 1 1 2 3 5 8 13 21 34 55 . . . n=1 -> 0, n=2 -> 1 :: 0번째와 1번째는 결정되어 있다. n = otherwise -> fib(n-1)+fib(n-2) :: n번째 수는 n-1번째수 + n-2번째 수 [1_ex] int Fibo(int n){ if(n==1) return 0; else if(n==2) return 1; else return fib(n-1)+fib(n-2); } void main(){ int i; for(i = 0; i3이므로 탐색범위를 인덱스 기준 0~3으로 제한, (0+3)/2 = 1.5로 나머지는 버린다. 3.idx[1]에 저장된 값이 3인지 확인한다. -아니다. *세번째 시도 1 2 3 7 9 1..