본문 바로가기

알고리즘2

3장 큐 *큐는 밀려드는 데이터를 순차적으로 처리하기 위해 고안됨 *순환 큐는 배열의 원소를 삽입,삭제할때 발생하는 땡기거나 밀어야 하는 비용을 없애고자 전단과 후단이라는 논리적인 개념을 도입한 큐 *실제 순환큐의 크기는 +1 하여 만들고, 비어있을때는 전단과 후단의 위치가 같고, 가득 찼을때는 후단이 전단보다 -1 작은 값을 가진다.*순환큐의 삽입은 현재 후단의 위치에 삽입 후 ++한다. (++한 위치가 capacitiy와 같다면 배열의 처음으로 후단을 옮긴다.)*순환큐의 삭제는 현재 전단의 위치를 ++증가시킨다.(덮어쓴다는 의미이다. ++한 위치가 capacity라면 배열의 처음으로 전단을 옮긴다.)*이 순환큐에서는 포화상태를 확인할 때 1. 전단이 앞 후단이 뒤일 경우 그 차이가 capacity인지 확인하는.. 2018. 10. 14.
2장 스택 1.다음과 같은 스택에서 70을 제거하려면 제거 pop연산을 모두 몇 번 수행해야 할까? ->100,90,80,70 총 네번 2.우리가 앞에서 만들어본 예제는 배열 기반 스택을 다음과 같은 구조체로 표현했다.Typedef struct tagArrayStack{ int Capacity; int Top; Node* nodes; } ArrayStack; 다음 AS_Push()함수를 스택 용량이 모두 소진될 때 현재 용량의 30%를 늘릴 수 있도록 개선하시오. Void AS_Push(ArrayStack* stack , ElementType Data){ //스택의 용량이 가득 찼으면 if( Stack->Top == Stack->Capacity) { ArrayStack *temp = new ArrayStack();.. 2018. 10. 14.