티스토리 뷰

1. 자료실의 프로그램중 Programs\Stacks\Array based\static allocation\의 StackType class를 사용하는 stackTest.cpp 프로그램을 작성하고 있다. 다음 문장들 중 컴파일 에러가 생기는 것은?  typo(오타)는 그냥 무시하세요 
①	ItemType item1(100);
②	ItemType item2;
③	StackType stack;

④	stack.Push(item1);
⑤	stack.Push(item2);
⑥	stack.Push(item1);
⑦	stack.Push(item1 + 1); 

⑧	stack.items[0] = stack.items[1];

⑨	stack.Pop(item1 + 1)
⑩	stack.Pop(item1);
⑪	Stack.Pop(&item1);
⑫	stack.Pop(item1.value);

2. 강의 슬라이드의 StackType class에 Peek멤버 함수를 추가하세요. Peek은 top에 있는 데이타 값을 전달하기만 하고, Pop과 달리 top의 데이터를 스택에서 제거하지 않습니다( top의 값이 변화되지 않습니다). 즉, Peek을 수행한 후에 스택의 상태는 변하지 않습니다. (Peek is an Observer)

3. 강의 슬라이드의 QueType 클래스를 구현할 때, 다음 빈 칸에 알맞은 문장을 넣어 보세요. (강의슬라이드 참조)
void QueType::QueType()
{
  front = ____________________;  // 4번 - 빈칸 넣기
  rear = ____________________;	 // 5번 - 빈칸 넣기
}

4.자료실의 프로그램중 Programs\CHAP04의 ReadReal.cpp에서 사용된 스택의 사용 목적을 설명하세요.


5번 ~ 11번 출력 값을 쓰세요.
	
int value;	//value:   location 100
value = 104;	
char* charPtr;	//charPtr: location 102
char string[6] = "Hello"; //string:  location 104
charPtr = string;	
std::cout << &value;   // question 5	
std::cout << value;    // question 6	
std::cout << &charPtr; // question 7	
std::cout << charPtr;  // question 8	
std::cout << *charPtr; // question 9	
std::cout << string;   // question 10	
std::cout << *string;  // question 11	







answer

1.
7 8 9 11 12

2.
ItemType StackType::Peek()
{
  if( IsEmpty() )
    throw PopOnEmptyStack();
  return items[top];
}
 
3.
 front = MAX - 1;
 rear = MAX - 1;
 
4.
스택을 통해서 소수점 이하의 값들을 처리한다.
만일 0.123456789가 들어왔을 때 차례대로 읽기 시작하는데
스택에 넣는 것은 소수점 이하의 숫자들이 들어간다.
1 2 3 4 5 6 7 8 9 차례로 넣어지고 꺼낼 때에는
9 8 7 6 5 4 3 2 1 순서대로 꺼내서 전에 꺼낸 값에
0.1을 곱하고 다음에 꺼낸 숫자를 더하는 형식으로 되어있다.

5.
100
6.
104
7.
102
8.
Hello
9.
H
10.
Hello
11.
H

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함