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();
temp.Capacity = stack->capacity * 1.3;
Temp.nodes = new Node[temp.capacity];
for(int i = 0 ; i < position ; i ++ ) {
Temp[i].Data = stack[i].Data;
}
Stack = temp;
}
int position = Stack->Top;
Stack->Nodes[position].Data = Data;
Stack->Top++;
}
3.비슷한 문제이니 패스.