그래서 재귀 backtracking을 사용하여 알고리즘을 생성하는 미로를 만들고 있습니다. 행렬을 사용하여 스택에서 방문하는 점을 추적합니다. 이 행렬에는 x 좌표와 y 좌표에 대한 두 개의 열이 있습니다. 문제는 내 프로그램이 작은 미로에서 작동하지만 더 큰 미로는 내 계산기가 메모리가 부족하다는 것입니다. 스택을 구현하는 메모리 집약적 인 방법이 있는지 궁금합니다. 가능한 방법으로 문자열을 사용하려고 생각하고 있습니다. 나는 ti-84 CSE를 사용합니다.티 - 기본에서 낮은 momory 스택을 구현하는 방법
0
A
답변
3
스택은 아마도 목록을 사용하여 구현되어야합니다. 데모 용으로 L1을 사용하겠습니다. 스택은 후입 선출 형 데이터 구조입니다. 목록 요소 X가 원하는 항목이
L1(X)
를 사용하여 액세스 할 수 있습니다. 이것은 첫 번째가 L1 (1) (목록의 시작, 첫 번째 항목) 이상으로 이동해야 함을 의미하며 첫 번째 항목은 목록의 마지막 항목에서 나와야합니다. 목록에 얼마나 많은 항목을 찾으려면이 얼마나 많은 항목의 수를 줄 것이다
dim(L1)
를 사용하는 (따라서 N 번째 항목을 찾으 마지막입니다). 변수에 저장하는 대신 목록의 마지막 항목에 항상 액세스 할 수 있습니다. 이것을 사용하면 :
L1(dim(L1))->M
//this addresses the item of L1 at dim(L1), meaning the last item
이제 M은 마지막 항목의 값을 갖게됩니다. 이것이 첫 번째 부분입니다. (당신이 그것을 떨어져 터진 이후)을 그리고, 마지막 항목을 파괴하려면 다음을 수행하십시오
dim(L1)-1->dim(L1)
그래서 모두 함께 넣어, 당신의 "팝업"코드가 될 것입니다 : 이제
If dim(L1)>0
Then
// It checks if L1 has an element to pop off in the first place
L1(dim(L1))->M
dim(L1)-1->dim(L1)
End
, M는 것이다 마지막 항목의 값을 가지며 마지막 항목이 삭제됩니다. 자, 푸시 코드에. 밀어 넣으려면 이전 번호보다 큰 번호를 새 슬롯에 넣어야합니다. 본질적으로 새로운 마지막 항목을 만들어 넣어야합니다. 다행히 TI-Basic에서는 매우 쉽습니다. 당신의 "푸시"코드가 될 것이다 :
If dim(L1)<99
// It checks if L1 has less than the maximum number of elements,
// which is 99.
M->L1(dim(L1)+1)
그리고 당신은 거 X를 저장해야하는 경우/Y 당신의 스택 좌표, 나는 이와 같은 형식을 권하고 싶습니다 :
X + .01Y -> M
//X=3, Y = 15
// This would make M be 3.15
하고를 이것들을 두 개의 분리 된 좌표로 분리하십시오 :
int(M)->X
// The integer value of M is 3, which is what X was earlier
100*fPart(M)->Y
// The fraction part of M was .15. Multiply that by 100 to get 15,
// which is what Y was earlier
관련 문제
- 1. LISP 언어로 스택을 구현하는 방법
- 2. 다트 + Postgressql 스택을 구현하는 방법
- 3. yii2 기본에서 datepicker를 사용하는 방법?
- 4. Segfault에서 C 스택을 구현하는 중
- 5. qUnit 티 아웃 방법
- 6. 기본에서 비공개로 값을 전달하는 방법
- 7. std :: vector를 사용하여 스택을 구현하는 방법은 무엇입니까?
- 8. RF 모듈에 프로토콜 스택을 구현하는 방법은 무엇입니까?
- 9. Clojure에서 재귀 DFS를 구현하는 방법 (벡터/스택을 사용하지 않고)
- 10. Linux에서 작업 - 기본에서 시스템 호출을 추가하는 방법?
- 11. Android 기본에서 Facebook OAuth를 사용하는 방법?
- 12. ContextMenu를 사용하여 기본에서 삭제
- 13. 내 스택을 유지하는 방법
- 14. 스택을 메서드에 전달하는 방법
- 15. 스레드 스택을 덤프하는 방법
- 16. SharedPreferences에 스택을 저장하는 방법
- 17. Java에서 재귀를 구현하는 방법
- 18. 적절한 티 해트 스크립트를 만드는 방법
- 19. 기본에서 파생 된 C++ 캐스팅
- 20. IPinFlowControl 무한의 핀 티 필터
- 21. 코드/코디네이 티 아키텍처
- 22. http "티"를 찾으십시오.
- 23. 티 버퍼링 이해
- 24. 레일 티 (Railties) - 사용시기
- 25. 깨진 파이프와 티?
- 26. gstreamer를 x264enc + 티 + mp4mux
- 27. 프로세스 대체 오해가있는 티
- 28. Eclipse 그래프 티 튜토리얼
- 29. 내부 "티"설정
- 30. Openflow : 플로우 티 만들기
물고기를 가르치고 사람에게 물고기를주는 것에 찬성표를 던지십시오. –
@EastonBornemeier 감사합니다! 나는 TI-Basic이 제대로 설명되지 않는 한 엉망으로 보일 수 있기 때문에 철저히 설명했다. –
@Stephen P 고마워! 실제로 2 개의 좌표를 하나의 숫자로 결합하는 것은 식칼이었습니다. – Meepo