SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
12장 함수 조합 다시 보기

   복잡한 프로그램

  -> 보조함수 사용

-> 코드 의미 가독성 증대
예 3.1 절
보조함수를 사용할 상황
• 화면에 그리기 등의 특수 기능
• 회계, 과학 등 특정 지식이 요구될 때
• 일반화된 형태의 함수 + 특화된 함수의 조
  합으로 사용할 경우

• “템플릿 -> 함수 정의로 변환” 이 과정에서
  보조함수 사용 필요를 느낌.
WISH LIST

• 만들어야 할 함수 목록을
  “WISH LIST”
  에 기록해두고 모두 완성

• 다른 함수에 의존하지 않는
  독립된 함수부터 테스트 시행
12.2 재귀 보조 함수
 • 목표 : 수 리스트의 정렬 구현
계약과 목적, 그리고 헤더




예




                   Cf) 디자인 레시피 예 p.23 , p.81
12.2 재귀 보조 함수
템플릿




 템플릿을 구현하려고 예를 살펴보니
 (first alon)을 (sort (rest along)) 에 삽입정렬할 필요에 봉착
12.2 재귀 보조 함수
보조함수 insert 의 계약, 목적, 헤더 작성




위 insert 의 헤더를 이용해서 sort 의 정의 구현
12.2 재귀 보조 함수

이제 insert 만 구현하면 끝.



insert 의 템플릿
12.2 재귀 보조 함수
완성된 코드.
12.3 문제 일반화, 함수 일반화
• 목표 : 임의의 다각형을 그리기

posn 리스트의 정규표현식

posn 리스트 ( list-of-posn ) 는 다음 두 가지 중 하나.

   1. empty
   2. ( cons p lop )   ; p는 posn 구조체, lop 는 posn 리스트
12.3 문제 일반화, 함수 일반화


다각형 ( polygon ) 의 정규표현식

다각형 ( polygon ) 는 다음 두 가지 중 하나.

   1. ( cons p empty ) ; p는 posn
   2. ( cons p lop )   ; p는 posn 구조체, lop 는 posn 리스트
12.3 문제 일반화, 함수 일반화
12.3 문제 일반화, 함수 일반화
12.3 문제 일반화, 함수 일반화
12.3 문제 일반화, 함수 일반화
결과물
12.3 문제 일반화, 함수 일반화
결과물



              이거슨 원하는 바가 아님.

              다각형을 그리는 것 만들려다
              더 일반적인 각 꼭지점을 잊는 함수를 만들
              게 됐음.

              빈 줄을 잊는 함수 WISH LIST 에 추가요!
12.3 문제 일반화, 함수 일반화
결과물



              이거슨 원하는 바가 아님.

              다각형을 그리는 것 만들려다
              더 일반적인 각 꼭지점을 잊는 함수를 만들
              게 됐음.

              빈 줄을 잊는 함수 WISH LIST 에 추가요!
12.3 문제 일반화, 함수 일반화
완성된 코드.




                 graphing.ss 추가해야됨
13. 리스트 축약

• ( cons 1 ( cons 2 ( cons 3 empty ) ) )

• = ( list 1 2 3 )

• = ‘( 1 2 3)
13. 리스트 축약

• ( list ‘a ‘b ‘c )
• = ‘( a b c )

• first, rest 동일하게 사용
14. 자기 참조 데이터 정의 더 보기

• 자기 참조 데이터
  ; 자기 구조체를
    속성으로 갖는 구조체 (와 같은 것들)
14. 자기 참조 데이터 정의 더 보기

• 자기 참조 데이터
  ; 자기 구조체를
    속성으로 갖는 구조체 (와 같은 것들)

예)
( define-struct child
    ( father mother name date eyes ) )
14. 자기 참조 데이터 정의 더 보기
( define-struct child
    ( father mother name date eyes ) )

자식항목(child) 은 구조체다.
         (make-child f m na da ec)
 f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며
 da(생일)는 숫자다.
14. 자기 참조 데이터 정의 더 보기
자식항목(child) 은 구조체다.
         (make-child f m na da ec)
 f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며
 da(생일)는 숫자다.
14. 자기 참조 데이터 정의 더 보기
자식항목(child) 은 구조체다.
         (make-child f m na da ec)
 f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며
 da(생일)는 숫자다.
14. 자기 참조 데이터 정의 더 보기
자식항목(child) 은 구조체다.
         (make-child f m na da ec)
 f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며
 da(생일)는 숫자다.
14. 자기 참조 데이터 정의 더 보기
14. 자기 참조 데이터 정의 더 보기
자식항목(child)는 (make-child f m na da ec) 이고 각 필드는,
  1. f와 m은 (a) empty 이거나 (b) child 이다.
  2. na 와 ec 는 기호다.
  3. da 는 숫자다.




가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다.
  1. empty
  2. (make-child f m na da ec) :
     f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
14. 자기 참조 데이터 정의 더 보기
자식항목(child)는 (make-child f m na da ec) 이고 각 필드는,
  1. f와 m은 (a) empty 이거나 (b) child 이다.
  2. na 와 ec 는 기호다.
  3. da 는 숫자다.




가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다.
  1. empty
  2. (make-child f m na da ec) :
     f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
14. 자기 참조 데이터 정의 더 보기
자식항목(child)는 (make-child f m na da ec) 이고 각 필드는,
  1. f와 m은 (a) empty 이거나 (b) child 이다.
  2. na 와 ec 는 기호다.
  3. da 는 숫자다.




가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다.
  1. empty
  2. (make-child f m na da ec) :
     f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
14. 자기 참조 데이터 정의 더 보기
자식항목(child)는 (make-child f m na da ec) 이고 각 필드는,
  1. f와 m은 (a) empty 이거나 (b) child 이다.
  2. na 와 ec 는 기호다.
  3. da 는 숫자다.




가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다.
  1. empty
  2. (make-child f m na da ec) :
     f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
14. 자기 참조 데이터 정의 더 보기
14. 자기 참조 데이터 정의 더 보기
14. 자기 참조 데이터 정의 더 보기
14.2 이진 검색 트리 (BST)
노드 정의




BT 정의

이진 트리 (BT) 는 다음 두 가지 중 하나다.
  1. false
  2. ( make-node soc pn lft rgt ) :
     soc(주민번호) - 수 , pn(이름) - 기호, lft rgt – 이진 트리
14.2 이진 검색 트리 (BST)
14.2 이진 검색 트리 (BST)
BST 정의 -   이진 검색 트리 불변항

이진 트리 (BT) 는 이진 트리이며, 다음 두 가지 중 하나다.

1. false 는 항상 이진 검색 트리이다.
2. ( make-node soc pn lft rgt )는 다음 조건을 만족할 시 이진트리임.
  (a) lft 와 rgt 는 이진 검색 트리이다.
  (b) lft 내 모든 soc 값은 soc 보다 작다.
  (c) rgt 내 모든 soc 값은 soc 보다 크다.

Mais conteúdo relacionado

Mais procurados

Project#4상호참조 생성기 Hwp
Project#4상호참조 생성기 HwpProject#4상호참조 생성기 Hwp
Project#4상호참조 생성기 HwpKimjeongmoo
 
The Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 TreeThe Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 Treehyun soomyung
 
포인터와 배열
포인터와 배열포인터와 배열
포인터와 배열Kim YoSep
 
데이터베이스 정규화
데이터베이스 정규화데이터베이스 정규화
데이터베이스 정규화Hoyoung Jung
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R BasicsYoonwhan Lee
 
파이썬 자료형 발표
파이썬 자료형 발표파이썬 자료형 발표
파이썬 자료형 발표joonjhokil
 
타임리프 폼과 어노테이션.Key
타임리프 폼과 어노테이션.Key타임리프 폼과 어노테이션.Key
타임리프 폼과 어노테이션.KeySeokju Hong
 
데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은ETRIBE_STG
 
자료구조3보고서
자료구조3보고서자료구조3보고서
자료구조3보고서KimChangHoen
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법Terry Cho
 
How to Study Mathematics for ML
How to Study Mathematics for MLHow to Study Mathematics for ML
How to Study Mathematics for MLDataya Nolja
 

Mais procurados (15)

Project#4상호참조 생성기 Hwp
Project#4상호참조 생성기 HwpProject#4상호참조 생성기 Hwp
Project#4상호참조 생성기 Hwp
 
The Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 TreeThe Art of Computer Programming 2.3.2 Tree
The Art of Computer Programming 2.3.2 Tree
 
포인터와 배열
포인터와 배열포인터와 배열
포인터와 배열
 
Cp2 w5
Cp2 w5Cp2 w5
Cp2 w5
 
데이터베이스 정규화
데이터베이스 정규화데이터베이스 정규화
데이터베이스 정규화
 
자구3번
자구3번자구3번
자구3번
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 
파이썬 자료형 발표
파이썬 자료형 발표파이썬 자료형 발표
파이썬 자료형 발표
 
타임리프 폼과 어노테이션.Key
타임리프 폼과 어노테이션.Key타임리프 폼과 어노테이션.Key
타임리프 폼과 어노테이션.Key
 
데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은
 
자료구조3보고서
자료구조3보고서자료구조3보고서
자료구조3보고서
 
3.포인터
3.포인터3.포인터
3.포인터
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법
 
How to Study Mathematics for ML
How to Study Mathematics for MLHow to Study Mathematics for ML
How to Study Mathematics for ML
 

Destaque

[IRU2016]CLASS02_SCIENTIFIC RESEARCH
[IRU2016]CLASS02_SCIENTIFIC RESEARCH[IRU2016]CLASS02_SCIENTIFIC RESEARCH
[IRU2016]CLASS02_SCIENTIFIC RESEARCHJY LEE
 
KERIS 실험학교 연수(기초과정
KERIS 실험학교 연수(기초과정KERIS 실험학교 연수(기초과정
KERIS 실험학교 연수(기초과정Kwang-Hyun Park
 
오류는 인간적이다
오류는 인간적이다오류는 인간적이다
오류는 인간적이다미디토리 미디토리
 
파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷Jihoon Kong
 
Python3 10장 문자열이야기
Python3 10장 문자열이야기Python3 10장 문자열이야기
Python3 10장 문자열이야기Jihoon Kong
 
Python3 6장 모듈만들기
Python3 6장 모듈만들기Python3 6장 모듈만들기
Python3 6장 모듈만들기Jihoon Kong
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기OnGameServer
 
GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서jungseob shin
 
도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기JangHyuk You
 
파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301Yong Joon Moon
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기JangHyuk You
 
Mongo db로 배우는 nosql
Mongo db로 배우는 nosqlMongo db로 배우는 nosql
Mongo db로 배우는 nosqlSuwon Chae
 
파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310Yong Joon Moon
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍Tae Young Lee
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Jin wook
 
Pull reqeust 활용기
Pull reqeust 활용기Pull reqeust 활용기
Pull reqeust 활용기jungseob shin
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with PythonLarry Cai
 
게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장JangHyuk You
 
Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Ian Choi
 

Destaque (20)

[IRU2016]CLASS02_SCIENTIFIC RESEARCH
[IRU2016]CLASS02_SCIENTIFIC RESEARCH[IRU2016]CLASS02_SCIENTIFIC RESEARCH
[IRU2016]CLASS02_SCIENTIFIC RESEARCH
 
KERIS 실험학교 연수(기초과정
KERIS 실험학교 연수(기초과정KERIS 실험학교 연수(기초과정
KERIS 실험학교 연수(기초과정
 
오류는 인간적이다
오류는 인간적이다오류는 인간적이다
오류는 인간적이다
 
파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷
 
Python3 10장 문자열이야기
Python3 10장 문자열이야기Python3 10장 문자열이야기
Python3 10장 문자열이야기
 
Python3 6장 모듈만들기
Python3 6장 모듈만들기Python3 6장 모듈만들기
Python3 6장 모듈만들기
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
 
GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서
 
도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기도메인 주도 설계 - 6장 도메인 객체의 생명주기
도메인 주도 설계 - 6장 도메인 객체의 생명주기
 
파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301
 
Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기Mongo DB 완벽가이드 - 4장 쿼리하기
Mongo DB 완벽가이드 - 4장 쿼리하기
 
Mongo db로 배우는 nosql
Mongo db로 배우는 nosqlMongo db로 배우는 nosql
Mongo db로 배우는 nosql
 
파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략
 
Github 사용법
Github 사용법Github 사용법
Github 사용법
 
Pull reqeust 활용기
Pull reqeust 활용기Pull reqeust 활용기
Pull reqeust 활용기
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with Python
 
게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장게임 프로그래머를 위한 기초 수학 및 물리 - 8장
게임 프로그래머를 위한 기초 수학 및 물리 - 8장
 
Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?
 

Semelhante a 12장 함수 조합 다시 보기4

파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법SeongHyun Ahn
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 HwpKimjeongmoo
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01seonhyung
 
Project#3다항식의연산 Hwp
Project#3다항식의연산 HwpProject#3다항식의연산 Hwp
Project#3다항식의연산 HwpKimjeongmoo
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2KoChungWook
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summaryHoChul Shin
 

Semelhante a 12장 함수 조합 다시 보기4 (9)

파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 Hwp
 
Ch07
Ch07Ch07
Ch07
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
 
2012 Ds 06
2012 Ds 062012 Ds 06
2012 Ds 06
 
Project#3다항식의연산 Hwp
Project#3다항식의연산 HwpProject#3다항식의연산 Hwp
Project#3다항식의연산 Hwp
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summary
 

12장 함수 조합 다시 보기4

  • 1. 12장 함수 조합 다시 보기 복잡한 프로그램 -> 보조함수 사용 -> 코드 의미 가독성 증대
  • 3. 보조함수를 사용할 상황 • 화면에 그리기 등의 특수 기능 • 회계, 과학 등 특정 지식이 요구될 때 • 일반화된 형태의 함수 + 특화된 함수의 조 합으로 사용할 경우 • “템플릿 -> 함수 정의로 변환” 이 과정에서 보조함수 사용 필요를 느낌.
  • 4. WISH LIST • 만들어야 할 함수 목록을 “WISH LIST” 에 기록해두고 모두 완성 • 다른 함수에 의존하지 않는 독립된 함수부터 테스트 시행
  • 5. 12.2 재귀 보조 함수 • 목표 : 수 리스트의 정렬 구현 계약과 목적, 그리고 헤더 예 Cf) 디자인 레시피 예 p.23 , p.81
  • 6. 12.2 재귀 보조 함수 템플릿 템플릿을 구현하려고 예를 살펴보니 (first alon)을 (sort (rest along)) 에 삽입정렬할 필요에 봉착
  • 7. 12.2 재귀 보조 함수 보조함수 insert 의 계약, 목적, 헤더 작성 위 insert 의 헤더를 이용해서 sort 의 정의 구현
  • 8. 12.2 재귀 보조 함수 이제 insert 만 구현하면 끝. insert 의 템플릿
  • 9. 12.2 재귀 보조 함수 완성된 코드.
  • 10. 12.3 문제 일반화, 함수 일반화 • 목표 : 임의의 다각형을 그리기 posn 리스트의 정규표현식 posn 리스트 ( list-of-posn ) 는 다음 두 가지 중 하나. 1. empty 2. ( cons p lop ) ; p는 posn 구조체, lop 는 posn 리스트
  • 11. 12.3 문제 일반화, 함수 일반화 다각형 ( polygon ) 의 정규표현식 다각형 ( polygon ) 는 다음 두 가지 중 하나. 1. ( cons p empty ) ; p는 posn 2. ( cons p lop ) ; p는 posn 구조체, lop 는 posn 리스트
  • 12. 12.3 문제 일반화, 함수 일반화
  • 13. 12.3 문제 일반화, 함수 일반화
  • 14. 12.3 문제 일반화, 함수 일반화
  • 15. 12.3 문제 일반화, 함수 일반화 결과물
  • 16. 12.3 문제 일반화, 함수 일반화 결과물 이거슨 원하는 바가 아님. 다각형을 그리는 것 만들려다 더 일반적인 각 꼭지점을 잊는 함수를 만들 게 됐음. 빈 줄을 잊는 함수 WISH LIST 에 추가요!
  • 17. 12.3 문제 일반화, 함수 일반화 결과물 이거슨 원하는 바가 아님. 다각형을 그리는 것 만들려다 더 일반적인 각 꼭지점을 잊는 함수를 만들 게 됐음. 빈 줄을 잊는 함수 WISH LIST 에 추가요!
  • 18. 12.3 문제 일반화, 함수 일반화 완성된 코드. graphing.ss 추가해야됨
  • 19. 13. 리스트 축약 • ( cons 1 ( cons 2 ( cons 3 empty ) ) ) • = ( list 1 2 3 ) • = ‘( 1 2 3)
  • 20. 13. 리스트 축약 • ( list ‘a ‘b ‘c ) • = ‘( a b c ) • first, rest 동일하게 사용
  • 21. 14. 자기 참조 데이터 정의 더 보기 • 자기 참조 데이터 ; 자기 구조체를 속성으로 갖는 구조체 (와 같은 것들)
  • 22. 14. 자기 참조 데이터 정의 더 보기 • 자기 참조 데이터 ; 자기 구조체를 속성으로 갖는 구조체 (와 같은 것들) 예) ( define-struct child ( father mother name date eyes ) )
  • 23. 14. 자기 참조 데이터 정의 더 보기 ( define-struct child ( father mother name date eyes ) ) 자식항목(child) 은 구조체다. (make-child f m na da ec) f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며 da(생일)는 숫자다.
  • 24. 14. 자기 참조 데이터 정의 더 보기 자식항목(child) 은 구조체다. (make-child f m na da ec) f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며 da(생일)는 숫자다.
  • 25. 14. 자기 참조 데이터 정의 더 보기 자식항목(child) 은 구조체다. (make-child f m na da ec) f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며 da(생일)는 숫자다.
  • 26. 14. 자기 참조 데이터 정의 더 보기 자식항목(child) 은 구조체다. (make-child f m na da ec) f와 m은 child 구조체이고, na(이름)와 ec(눈색깔)는 기호이며 da(생일)는 숫자다.
  • 27. 14. 자기 참조 데이터 정의 더 보기
  • 28. 14. 자기 참조 데이터 정의 더 보기 자식항목(child)는 (make-child f m na da ec) 이고 각 필드는, 1. f와 m은 (a) empty 이거나 (b) child 이다. 2. na 와 ec 는 기호다. 3. da 는 숫자다. 가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다. 1. empty 2. (make-child f m na da ec) : f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
  • 29. 14. 자기 참조 데이터 정의 더 보기 자식항목(child)는 (make-child f m na da ec) 이고 각 필드는, 1. f와 m은 (a) empty 이거나 (b) child 이다. 2. na 와 ec 는 기호다. 3. da 는 숫자다. 가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다. 1. empty 2. (make-child f m na da ec) : f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
  • 30. 14. 자기 참조 데이터 정의 더 보기 자식항목(child)는 (make-child f m na da ec) 이고 각 필드는, 1. f와 m은 (a) empty 이거나 (b) child 이다. 2. na 와 ec 는 기호다. 3. da 는 숫자다. 가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다. 1. empty 2. (make-child f m na da ec) : f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
  • 31. 14. 자기 참조 데이터 정의 더 보기 자식항목(child)는 (make-child f m na da ec) 이고 각 필드는, 1. f와 m은 (a) empty 이거나 (b) child 이다. 2. na 와 ec 는 기호다. 3. da 는 숫자다. 가계도 항목 family-tree-node (ftn) 는 다음 두 가지 중 하나다. 1. empty 2. (make-child f m na da ec) : f , m - ftn , na(이름) ec(눈 색깔) - 기호, da(생일) - 숫자
  • 32. 14. 자기 참조 데이터 정의 더 보기
  • 33. 14. 자기 참조 데이터 정의 더 보기
  • 34. 14. 자기 참조 데이터 정의 더 보기
  • 35. 14.2 이진 검색 트리 (BST) 노드 정의 BT 정의 이진 트리 (BT) 는 다음 두 가지 중 하나다. 1. false 2. ( make-node soc pn lft rgt ) : soc(주민번호) - 수 , pn(이름) - 기호, lft rgt – 이진 트리
  • 36. 14.2 이진 검색 트리 (BST)
  • 37. 14.2 이진 검색 트리 (BST) BST 정의 - 이진 검색 트리 불변항 이진 트리 (BT) 는 이진 트리이며, 다음 두 가지 중 하나다. 1. false 는 항상 이진 검색 트리이다. 2. ( make-node soc pn lft rgt )는 다음 조건을 만족할 시 이진트리임. (a) lft 와 rgt 는 이진 검색 트리이다. (b) lft 내 모든 soc 값은 soc 보다 작다. (c) rgt 내 모든 soc 값은 soc 보다 크다.