본문 바로가기

--------------------***/자료구조8

스택에 입력했다 출력하는 경우 출력순서의 결과가 아닌것 A,B,C,D로 입력이 정해졌을 때, 스택에 입력했다 출력하는 경우 출력순서의 결과가 아닌것 A,B,C,D C,D,B,A D,C,A,B B,C,D,A => 문제는 B를 스택에 넣으려면 A를 먼저 넣어야 한다. C를 스택에 넣으려면 A그리고 B를 먼저 넣어야 한다. 대신 넣은것은 언제든 출력 가능. 다만, 입력 순서만 지켜주면 된다. 1. A를 넣고 바로 출력, B를 넣고 바로 출력, C를 넣고 바로 출력, D를 넣고 바로 출력 2. A와 B와 C를 순서대로 넣고 C를 바로 출력, D를 넣고 바로 출력, B를 출력, A를 바로 출력 3. D와 C를 출력하려면 먼저 스택에 A와 B가 있어야 하는데, (입력할때 순서가 ABCD순서이므로 D를 입력하려면 ABC가 어쨌든 입력이 되어야 한다.) 그런데 스택에 A가.. 2020. 5. 24.
Stack/Queue stack과 queue를 공부하면서 사용할 여러가지 멤버함수 이름을 보면 다음과 reference와 같다. 강의에서는 다음 함수들 기능을 구현하고, 실제로 어떻게 적용되는지를 확인하게 되는데, 알고리즘 문제를 풀때는 reference를 참고해서 작성하면 된다. #include #include http://www.cplusplus.com/reference/stack/stack/ stack - C++ Reference container_typeThe second template parameter (Container)Type of the underlying container www.cplusplus.com http://www.cplusplus.com/reference/queue/queue/ queue - C+.. 2020. 3. 3.
스택 중위표기식을 후위표기식으로 전환 다음 두가지 단계에 대해 명확히 구분하셔야 합니다. 출력하는것과 스택에 넣는 방법이 다르기 때문에 구분해서 기억하셔야 합니다. 1. 후위표기식으로 변환 2. 후위표기 계산 다음 식을 후위표기식으로 전환하는 연습을 해보도록 하겠습니다. A*B-C/D 주의할 점 1) 연산자 우선순위에 따라 괄호를 표시하세요 2) 출력하는것과 스택에 넣는 것의 기준을 명확히 하세요 {(A*B)-(C/D)} 가장 간단하게는, 오른쪽 괄호가 나오면 연산자를 적어주는 겁니다. (AB)* (CD)/ 그리고 (AB)* : A와B를 곱한 결과를 X라고 가정합니다. (CD)/ : C와D를 나눈 결과를 Y라고 가정합니다. 그렇다면 위의 식의 결과를 다시 표현해보도록 하겠습니다. {X-Y} 따라서 {XY}- 로 표현하실 수 있습니다. 그리고.. 2020. 2. 20.
[하노이 타워] c++코드 이해/순환 알고리즘 순환 알고리즘입니다. 코드는 다음과 같습니다. void hanoi_tower(int n, char from, char tmp, char to){ if( n ==1 ) cout 2020. 2. 18.
[주소와 포인터] 복습 1-1.1) &연산자가 변수 앞에 붙으면 그 변수의 를 나타낸다.2) & 이름은?더보기1) 주소2) 앤퍼센트 포인터 선언문과 대입문 사용의 차이를 비교해 봅시다. 2-1.포인터 변수에 NULL을 대입하는 것의 의미는 무엇인가요? 다음 중 옳은 것을 골라주세요. int* ptr = NULL;1) ptr 포인터 변수가 가리키는 곳에 NULL을 대입2) ptr 포인터 변수를 초기화더보기포인터 변수에 NULL을 대입하는 것의 의미는 가리키는 변수가 없다는 것을 의미합니다.2) ptr 포인터 변수를 초기화 합니다.포인터 변수를 선언할때는 *(애스터리스크)가 값을 가리키지 않습니다. int* ptr = NULL ; 이와같은 선언문은데이터 타입이 int 타입인, * 포인터 변수 ptr 입니다. 라는 것을 나타냅니다... 2020. 2. 18.
[배열] 2차원 배열 복습 2차원 배열에 대해 복습해 봅시다. 1. 1) 다음 배열의 초기화는 어떻게 될지 실제 메모리 구조로 그림을 그려가며 설명해 보세요. 2) 논리적 구조로 표현해 보세요. 3) 다음 네개의 배열중 불가능한 것을 고르세요. 4) num[ index ][ index ] 형태로 값이 들어간 형태를 표현해 보세요. 예) num[1][1] = x int num[2][3] = {{1,2,3,},{4,5,6}}; int num[2][3] = {1,2,3,4,5,6}; int num[][3] = {1,2,3,4,5,6}; int num[2][] = {1,2,3,4,5,6}; 더보기 int num[2][3] = {{1,2,3,},{4,5,6}}; int num[2][3] = {1,2,3,4,5,6}; int num[][3].. 2020. 2. 17.
[배열] 1차원 배열 복습 배열 값의 초기화 1. int num[] = {30, 40, 50}; 1)위 배열의 원소의 갯수는 몇개인가요? 2)각 원소의 인덱스에 맞게 어떤 값이 들어가는지 적어보세요. 예) num[ index ] : 더보기 1)3개. 배열의 개수를 정해주지 않은 경우 최화 갯수만큼 맞춰줍니다. 2) num[0] : 30, num[1] : 40, num[2] : 50 2. int num[5]={10,20,30}; 1) 총 원소의 갯수는 몇개인가요? 인덱스가 몇부터 몇까지 해당되나요? 2) 각 원소의 인덱스에 맞게 어떤 값이 들어가는지 적어보세요. 예) num[ index ] : 더보기 1) 5개 2) 0, 1, 2, 3, 4 3) num[0] : 10 num[1] : 20 num[2] : 30 num[3] : 0 n.. 2020. 2. 17.
visual studio 콘솔창 바로 종료되지 않게 설정하기 첫 시간에는 빌드 후, 실행해보는 단계 였는데, 순식간에 실행창이 사라지는 결과가 나왔습니다. 그래서 콘솔창이 바로 사라지지 않고, 창이 남아있게 설정을 변경해주도록 하려고 해요. 이번 예제의 프로젝트명은 'test'입니다. 메뉴의 프로젝트 > '프로젝트명' 속성(최하단 클릭) 사진에서는 test 속성이라고 나와있는데, 제가 만들었던 프로젝트의 이름이 test였습니다. 그리고 다음 사진도 마찬가지로, 좌측 상단에 'test 속성 페이지'라고 보이는데, 같은 이유입니다. 구성 속성 > 링커 > 시스템 시스템 탭에서 하위 시스템 부분을 클릭하면 콤보박스가 나타나는데, 콘솔(SUBSYSTEM:CONSOLE) 선택후 확인을 선택합니다. 그러면 이제는 콘솔창이 바로 종료되지 않습니다. 그리고 가급적이면 빌드(ct.. 2020. 2. 8.