게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
간단한 스택 개념문제인데 의사코드 제가 이해한게 맞을까요?
게시물ID : computer_87717짧은주소 복사하기
작성자 : 등교의고통
추천 : 0
조회수 : 506회
댓글수 : 2개
등록시간 : 2013/05/12 09:12:35

다중스택이라고 하는겁니다. 일단 문제는 배열 A[100]을 10의 스택으로 나누어서 난수 발생시켜 각각의 스택에 무작위로 값을 부여하고 만약 한 스택이 꽉차게 되면 다른 한쪽 여유가 있는 스택에서 하나를 뺏어오는거죠..제가 궁금한건 초기화할때 배열A와  t와 b를 연결시켜줘야하는거죠? A[10*i]=t[i]이런식이 아닌가요?A[t[i]]=e 이부분이 약간 이해가 안가구요..isfull함수는 t가 각각 나뉜 스택에 탑인데 이 t가 다음 스택에 베이스인 b에 도달하면 꽉차있게 된다는걸 함수로 구현하는 건가요? 그렇다면 t[i]==b[i+1]이런식이 되게해야하는건가요?

main

  input array A, t, b, size N, integer n

  output none

//배열 An개의 스택이 연달아 연결되어있는 형태

1.initMultiStack()  //배열A를 초기화

//top을 표시하는 t배열과 base를 표시하는 b배열을 초기화한다.

2. k ¬ 1

3. while (k ≤ 100)

  i ¬ a random number between 0 and 9 // i번째 스택

  e ¬ a random number between 0 and 99 //원소e

  push(i, e) //i번째 스택에 원소epush

  k ¬ k + 1 // 100번삽입하기위한 카운트변수

4. return

 

push

  input array A, t, b, size N, stack i, element e

  output none

1. if (isFull(i)) //push하고자 하는 i번째의 스택이 만원일시

  showMultiStack()

  fullStackException(i) // i번째 스택에 대하여 예외처리

  showMultiStack()

2. t[i] ¬ t[i] + 1 // i번째 스택의 top값 증가

3. A[t[i]] ¬ e //실질적인 push작업

4. return

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호