본문 바로가기

소프트웨어자료26

Linked list (연결 리스트) 란 무엇인가? Linked list (연결 리스트) 간단히 설명하자면 고구마 줄기라고 생각해봐라. 처음 시작하는 부분만 알고 있다. 그 시작 부분을 타고 들어가다 보면 고구마(data)가 계속 줄줄이 나온다. 시작(주소) - 연결(link) - 끝(null pointer or circular) 위의 순서가 존재함을 기억해라. 연결 리스트는 위의 그림과 같이 여러개의 node(노드)를 연결함으로써 데이터를 표현가능하다. 노드는 자료를 가진 data 부분과 다음 노드를 연결하는 link 부분으로 나뉘어져 있다. 배열과 유사하지만 훨씬 효율적인 저장 방법이다. Array (배열) Linked list (연결 리스트) 차이점 - static allocation of array (정적할당) - 정해진 메모리크기를 미리 할당 하.. 2020. 5. 21.
[자료구조] 순환 알고리즘 (이원 탐색, 순열 생성) 순환 알고리즘 함수가 그 수행이 완료되기 전에 자기 자신을 다시 호출(직접 순환, direct recursion)하거나 호출 함수를 다시 호출하게 되어 있는 다른 함수를 호출(간접 순환, indirect recursion) 할 수 있다. if - else 문, while문, for문으로 작성할 수 있는 어떤 프로그램도 순환으로 작성할 수 있고, 훨씬 단순하게 표현할 수 있도록 해준다. 순환 알고리즘에서 코딩부터 시도 하는 것이 아니라, 조건과 순환 구조를 미리 정리하고 코딩하는 것이 빠르다. (1) 순환 호출의 종결 조건을 먼저 설정한다. - 종결되지 않으면 끝도없이 순환하게 되는 악몽에 빠진다. (2) 매 호출마다 해답을 향해 한 단계씩 가까워지게끔 순환 호출을 구현하여야 한다. 아래 두가지 예를 통해.. 2020. 4. 13.