가 변 데이터 구조의 프로 그래 밍

2533 단어
가 변 데이터 구조
이 책의 첫 부분 은 프로그램 이 데이터 구 조 를 미리 정의 하고 데이터 구 조 를 사용자 정의 하 는 프로 그래 밍 을 소개 한다.이 두 가지 데이터 구조의 공통점 은 내부 데이터 필드 의 수량 이 유한 하기 때문에 고정 데이터 (Fixed - Sized Data) 라 고 부른다 는 것 이다.그러나 생활 속 에는 데이터 도 메 인 수가 미리 정 해 지지 않 는 경우 가 많다.예 를 들 어 모 대학 전 교 생 의 건강 상 태 를 집계 하려 면 이번 조사 가 몇 명 을 커버 할 수 있 는 지 직원 들 이 정확히 알 수 없다.이 책 은 이러한 데 이 터 를 가 변 데이터 (Arbitrarily Large Data) 라 고 부른다.
이 책 은 이 유형의 데 이 터 를 표현 하기 위해 링크 를 도입 했다.이 개념 은 Python 의 List 유형 과 유사 하 다.링크 는 흔히 볼 수 있 는 데이터 구조 중 하나 로 더 이상 소개 하지 않 습 니 다.
링크 의 특징 중 하 나 는 자신 이 자신 을 가리 키 는 것 이다. 즉, 링크 의 모든 요소 next 도 메 인 은 자신의 유형 을 가리 키 는 지침 을 포함한다.따라서 재 귀 데이터 구조 (Self - referential Data) 라 고도 불 린 다.
역귀 함수
이 책 이 현재 채택 하고 있 는 BSL + 언어 에는 for 순환 문 구 는 없다.유일한 논리 선택 문 구 는 cond 표현 식 만 있 고 Python 의 if 문구 와 유사 합 니 다.따라서 배열 의 모든 요 소 를 옮 겨 다 니 려 면 새로운 길 을 열 어야 한다.이 책 은 배열 문 제 를 해결 하기 위해 재 귀 함수 (Self - Referential Function, 또는 Recursive Function) 를 도입 했다.형식 은 다음 과 같다.
def do_something_with(LIST):
    if :
        
    else:  # the list is not empty
        
        do_something_with()

재 귀 함수 에는 두 가지 요점 이 있다.
  • 재 귀 는 과정 이나 함수 에서 자신 을 호출 하 는 것 이다.
  • 재 귀 를 사용 할 때 반드시 명확 한 재 귀 종료 조건 을 가지 고 재 귀 수출 이 라 고 해 야 한다.

  • 재 귀 는 두 단계 로 나 뉜 다.
  • 복잡 한 문제 의 해답 을 원래 의 문제 보다 간단 한 문제 의 해답 으로 미 루 기;
  • 복귀 - 가장 간단 한 상황 을 얻 은 후에 점차적으로 돌아 가 복잡 한 해 를 얻는다.

  • P. S. 재 귀 함수 의 유효성 은 수학 귀납법 으로 엄 격 히 증명 할 수 있다.구체 적 인 과정 은 제2 장: 교체, 귀납 과 귀속 을 볼 수 있다.
    보조 함 수 를 언제 설계 합 니까?
    인용 한 데이터 (self - reference) 를 처리 하려 면 귀속 함 수 를 설계 해 야 하고, 교차 인용 한 데이터 (cross - reference) 를 처리 하려 면 보조 함 수 를 설계 해 야 한다.
    구체 적 으로 다음 과 같은 상황 이 발생 하면 보조 함 수 를 사용 하 는 것 을 권장 합 니 다.
  • 데 이 터 를 처리 할 때 다른 특정한 분야 의 지식, 예 를 들 어 이미지 합성, 과학 계산 등 이 필요 하 다.
  • 상황 에 따라 데 이 터 를 처리 해 야 할 때 if 선택 절 차 를 설계 해 야 한다.만약 이 절차 가 매우 복잡 하 다 면 단독으로 보조 함수 로 설계 하 십시오.
  • 만약 에 처리 데이터 의 일부분 이 귀속 데이터 라면 이 부분의 데이터 처리 절 차 를 분리 하여 보조 함 수 를 형성 해 야 한다.
  • 상기 방법 이 잘못 되면 more genel 함수 (MGF, 더 광범 위 한??) 를 설계 하고 현재 의 주 함 수 를 MGF 의 키 함수 로 설계 해 야 할 지도 모른다.
    If everything fails, you may need to design a more general function and define the main function as a specific use of the general function. This suggestion sounds counter-intuitive but it is called for in a remarkably large number of cases.
  • 좋은 웹페이지 즐겨찾기