목록전체 글 (155)
승쨩개발공부
스택(Stack)Stack이란 자료구조는 규칙이 다음과 같다.1. 저장 : 항상 위에만 저장한다.2. 읽기 : 항상 제일 위에 있는 데이터만 읽을 수 있다.3. 삭제 : 항상 제일 위에 있는 데이터만 삭제 할 수 있다. STACK은 위 규칙을 가진 전용 자료구조 이고 배열을 이용해서 구현해도 좋고또는 LIST 를 이용해서 구현해도 좋다. 구현 방벙은 개발자의 자유다. 데이터 방식 : LIFO(Last In First Out) 후입 선출마지막에 들어온 데이터가 먼저 나간다. 게임에서의 활용 : 역순으로 객체나 이벤트를 처리해야 할 떄 유용하다.UI같은거 유용함. 리스트 기반 스택 코드첫번쨰 Push의 Next는 m_Head = null이다 그림설명 큐(Queue)스택과 비슷한 자료구조이며 현업에서 굉..
list를 만들어보자구현하는 방식 구현코드
노드데이터를 저장하는 최소 단위배열에서 노드는 각각의 변수 1개(1칸)을 뜻한다. 링크드리스트링크드리스트란 한 노드가 노드를 가르키고 있는 자료구조여러개의 노드로 이루어져 있다. 링크드리스트 한 노드가 노드를 가르키는데그 한개를 노드라고한다.구조체 (클래스) 포인터를 이용해서 구현한다. 배열 vs 링크드리스트배열의 단점10칸 짜리 배열을 만들었는데 ex) int arr[10];내가 데이터를 12칸 쓰고싶으면 쉽지가 않다.12칸짜리 배열을 만들어서 복사해주면되긴하는데연산이 너무 많아지기에 비효율적이다.링크드리스트는 실행도중에 추가적으로 데이터를 추가해줘도큰 부담이 없다.노드만 생성해주고 주소만 연결해주면 되니까중간에 데이터를 삽입하건 삭제하여도 큰 부담이 없다.링크드리스트를 써야 할떄는 실행도중에 데..
재귀함수를 탐색하다 보면 밑 그림과 같이 무수히 많은 함수중 어떤 함수를 실행하고 있는지 따로 체크를 하지 않으면 탐색하기가 어렵다.특히 디버깅 하거나 할떄 잊어버리기 쉽상이다.그래서 함수에 들어가기 전에 해당 함수의 위치를 배열에 기록해두려 한다.위 사진은 Depth는 2이고 Branch는 3이다.코드과정 출력 결과어? 출력결과를 잘 보면 A,B,C가 카드로 치면 3장이 있다고 치고A,B,C로 카드를 2개를 뽑는 모든 경우에 수가 생긴걸 볼수 있다! 그렇다면 카드 3장이 있고 3장을 모두 뽑는다면 그 경우의 수도 출력할수있지않을까?된다!즉 깊이는 뽑는갯수넓이는 카드의 종류라고 보면 될것같다. 연습문제1위와 같은 트리모양으로 재귀호출 프로그램을 만드려 합니다.Level 3에 도착했을떄 입력 받은 PA..
재귀함수 깊이와 너비만약 재귀함수를 한번이 아니라 2번이 된다면 어떻게될까?재귀 함수를 2번 호출을 해보자 그렇다면 구조는 이렇게 나오게된다.그렇다면 이동 방향은? 왼쪽아래부터 내려가서 끝까지 내려갔음 다시 1로돌아와서 2로가고 다시 0까지 올라가고오른쪽 1로가서 왼쪽2로가고 다시 1로올라와서 2로가고 끝까지 올라온다.즉, 왼쪽 아래를 우선적으로 탐색한다. 출력결과 그럼 재귀2번호출은 알았으니 3번호출이 된다면? 구조는 이렇게 나오게 된다. 출력결과즉 코드를 보면 알수있듯이매개변수로 던지는 Level은 Depth(깊이)가 되고재귀 호출의 횟수는 Width(너비)가 된다, 또는 Branch(나뭇가지)라고도 할수있다. 연습문제1Level과 Branch를 입력 받고 그만큼 재귀호출을 해 주세요(출력결과..