1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tài liệu Cấu trúc dữ liệu_chương 5 docx

60 379 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 801,95 KB

Nội dung

1 CH NG V C U TRÚC D LI U T a bi t r ng vi c l p trình ph thu c ph n l n vào cách mơ hình hố d li u c a tốn c n gi i M i quan h gi a thu t toán c u trúc d li u l p trình ã c Niclaus Wirth, tác gi ngơn ng l p trình Pascal, a m t công th c r t n i ti ng : C u trúc d li u + Thu t toán = Ch ng trình (Data structure + Algorithms = Programs) Nh ã th y, thu t toán m i ch ph n ánh thao tác c n x lý, cịn i t ng x lý máy tính l i d li u Nói n thu t tốn nói n thu t tốn ó tác ng lên d li u Cịn nói n d li u nói n d li u y c n c tác ng b i thu t toán a n k t qu mong mu n D li u bi u di n thông tin c n thi t gi i toán, g m d li u a vào, d li u a d li u tính toán trung gian M t c u trúc d li u liên quan n ba y u t : ki u d li u, phép toán tác ng lên d li u cách bi u di n d li u b nh c a máy tính tu theo cơng c l p trình Trong ch ng này, s trình bày m t s c u trúc d li u tiêu bi u nh t p h p, ng n x p, danh sách móc n i, V.1 T ph p Trong toán h c, t p h p (set) m t nhóm hay m t b s u t p i t ng1 phân bi t {x1, x2, …, xn}, c g i ph n t (elements) c a t p h p Do m i ph n t c a m t t p h p ch c li t kê m t l n không c s p x p th t nên ng i ta khơng nói n ph n t th nh t, ph n t th hai, v.v Ví d hai t p h p sau ây ng nh t : { a, b, d, a, d, e, c, d } = { a, b, c, d } Do t p h p c ng m t danh sách, ng i ta có th s d ng c u trúc danh sách bi u di n t p h p Scheme Nh v y, m t t p h p r ng m t danh sách r ng so sánh hai t p h p có b ng khơng, ta có th s d ng v t equal? nh sau : (define (setequal? E1 E2) (cond ; hai t p h p r ng b ng ((and (null? E1) (null? E2)) #t) ; hai t p h p có hai ph n t u tiên b ng Khái ni m i t ng c a t p h p có tính tr c giác, nhà toán h c ng i c G Cantor a t n m 1985 n n m 1902, nhà tri t h c ng i Anh B Russell ã ch nh ng ngh ch lý toán h c (paradox) hay nh ng mâu thu n lôgic lý thuy t t p h p 147 148 L P TRÌNH HÀM ((equal? (car E1) (car E2)) (setequal? (cdr E1) (cdr E2))) ; hai t p h p có hai ph n t u tiên khác khác !!! (else #f))) (setequal? ’(1 6) ’(1 6)) > #t ho c : (define E1 ’(a b c d e)) (define E2 E1) (setequal? E1 E2) > #t ý r ng v t setequal? ây, ta ch a x lý hai t p h p có ph n t gi ng y có s ph n t , nh ng không c s p x p th t nh : (setequal? '(1 6) '(1 6)) > #f Sau ây ta s s d ng th ng xuyên hàm member m t ph n t có thu c m t danh sách ã cho hay không : ; Tr ng h p ph n t ki m tra có ki u (member ’c ’(a b c d e)) > ’(c d e) x lý t p h p Hàm ki m tra n gi n ; Tr ng h p ph n t ki m tra có ki u ph c h p (member (list ’a) ’(b (a) c)) > ’((a) c) V t in? ki m tra m t ph n t có thu c m t t p h p ã cho hay không ? (define (in? x E) (cond ((null? E) #f) ; danh sách r ng ((member x E) #t) ; x ph n t ki u n gi n (else (in? x (cdr E))))) ; x ph n t ki u ph c h p (in? ’c E1) > #t xây d ng m t t p h p t m t danh sách, ng i ta ph i lo i b ph n t trùng l p Hàm list->set sau ây s d ng hàm member l n l t ki m tra ph n t c a danh sách ã cho K t qu tr v ch gi l i ph n t cu i i v i nh ng ph n t trùng ch a s p x p l i ph n t theo th t (xem ph ng pháp s p x p nhanh cu i ch ng) (define (list->set L) (cond ((null? L) ’()) ((member (car L) (cdr L)) (list->set (cdr L))) (else (cons (car L) (list->set (cdr L))))) (list->set ’(a b d a d e c d)) > ’(b a e c d) (define (union2 E1 E2) (cond ((null? E1) E2) C U TRÚC D LI U 149 ((member (car E1) E2) (union2 (cdr E1) E2)) (else (cons (car E1) (union2 (cdr E1) E2))))) Phép h p t p h p Gi s cho hai t p h p E1 E2, ta c n tìm k t qu c a phép h p c a hai t p h p E1 E2 m t t p h p nh sau : (define (union2 E1 E2) (cond ; t p h p th nh t r ng k t qu t p h p th hai ((null? E1) E2) ; n u t p h p th nh t có ph n t thu c t p h p th hai b qua ((member (car E1) E2) (union2 (cdr E1) E2)) ; ti p t c sau gi m kích th c t p h p th nh t (else (cons (car E1) (union2 (cdr E1) E2))))) (union2 ’(1 7) ’(2 6)) > ’(1 6) M r ng phép h p c a hai t p h p, ta xây d ng phép h p t p h p b t k b ng cách s d ng hàm list-it ã c nh ngh a ch ng tr c : (define (union Lset) (list-it union2 Lset ’())) (union ’(1 4) ’(2 6) ’(4 7) ’(6 8)) > ’(1 8) Phép giao t p h p T ng t cách xây d ng phép h p t p h p b t k , tr c tiên ta xây d ng phép giao c a hai t p h p E1 E2 nh sau : (define (intersection2 E1 E2) (cond ; n u m t t p h p r ng k t qu c ng r ng ((null? E1) E1) ; ch n ph n t n m c hai t p h p ((member (car E1) E2) (cons (car E1) (intersection2 (cdr E1) E2))) ; ti p t c sau gi m kích th c t p h p th nh t (else (intersection2 (cdr E1) E2)))) (intersection2 ’(1 4)’(2 6)) > ’(2 4) M r ng phép giao c a hai t p h p, ta xây d ng phép giao t p h p b t k b ng cách s d ng hàm apply ã c nh ngh a m c Error! Reference source not found : (define (intersection Lset) (cond ; giao c a t p h p r ng c ng r ng ((null? Lset) ’()) ; giao c a m t t p h p ((null? (cdr Lset)) (car Lset)) ; a v th c hi n phép giao c a hai t p h p (else (intersection2 (car Lset) (apply intersection (cdr Lset)))))) 150 L P TRÌNH HÀM (intersection ’(1 4) ’(2 6) ’(4 7)) > ’(4) Phép hi u c a hai t p h p Cho hai t p h p E1 E2, ta âënh nghéa phép hi u c a hai t p h p E1\E2 nh sau : (define (difference E1 E2) (cond ; n u E2 r ng k t qu E1 ((null? E2) E1) ; n u E1 r ng k t qu r ng ((null? E1) ’()) ; n u E1 có ph n t thu c E2 b qua ((member (car E1) E2) (difference (cdr E1) E2)) ; ti p t c sau gi m kích th c t p h p E1 (else (cons (car E1) (difference (cdr E1) E2))))) (difference ’(1 5) ’(1 2)) > ’(3 5) Tìm t p h p c a m t t p h p Cho tr c t p h p E, ta c n tìm t p h p t t c t p h p (sub-set) c a E, ký hi u 2E Ch ng h n cho E={ a, b, c } 2E ={ , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}} có t t c ph n t bao g m t p h p r ng b n thân t p h p E N u t p h p E r ng, 2E c ng r ng N u E khác r ng, xét m t ph n t a E, ó có t p h p ch a a t p h p không ch a a u tiên xây d ng t p h p E\{a}, sau ó, chèn a vào t t c t p h p c a E\{a} Ta có hàm subset nh sau : (define (subset E) (if (null? E) (list ’()) (let ((Lremain (subset (cdr E)))) (append Lremain (map (lambda (L) (cons (car E) L)) Lremain))))) (subset ’(a b c)) > ’(() (c) (b) (b c) (a) (a c) (a b) (a b c)) V.2 Ng n x p Danh sách ki u «ng n x p» (stack), cịn c g i «ch ng» (t ng t m t ch ng a, m t b ng n ), m t c u trúc d li u mà phép b sung hay lo i b m t ph n t luôn c th c hi n m t u g i nh (top) Nguyên t c ho t ng «vào sau tr c» c a ng n x p ã d n n m t tên g i khác danh sách ki u LIFO (Last In First Out) Ng n x p c s d ng r t ph bi n tin h c Hình V.1 minh ho ho t ng c a m t ng n x p th c hi n th t c quy tính n! C U TRÚC D V.2.1 LI U 151 Ki u d Sau ây li u tr u t c t c u trúc d li u tr u t ng ng n x p ng ki u ng n x p : Types Stack(T) functions empty-stack : Stack(T) empty-stack? : Stack(T) boolean push-stack : T Stack(T) Stack(T) pop-stack : Stack(T) - Stack(T) / top-stack : Stack(T) - T / preconditions pop-stack(s: Stack(T)) ch xác nh ch (not empty-stack?(s)) top-stack(s: Stack(T)) ch xác nh ch (not empty-stack?(s)) axioms var x: T, s : Stack(T) empty-stack?(empty-stack) = true empty-stack?(push-stack (x, S)) = false pop-stack(push-stack (x, S)) = S top-stack(push-stack (x, S)) = x fac(0)=1 fac(1)=? fac(2)=? fac(3)=? fac(3)= ? 1*fac(0) 2*fac(1) 2*fac(1) 3*fac(2) 3*fac(2) 3*fac(2) fac(3)=3*fac(2) fac(2)=2*fac(1) fac(1)=1*fac(0) 1*1 2*fac(1) 2*1 3*fac(2) 3*fac(2) fac(1)= fac(2)=2*1=2 Hình V.1 Ho t 3*2 fac(3)= 3*2 ng c a ng n x p th c hi n th t c fac(3)= quy tính n! Ta c n xây d ng hàm Scheme thao tác ng n x p nh sau : (empty-stack? (empty-stack)) #t 152 L P TRÌNH HÀM (empty-stack? (push-stack x S)) #f (pop-stack (push-stack x S)) > S (top-stack (push-stack x S) > x V.2.2 Xây d ng ng n x p b) S $ S a) $ Có nhi u cách bi u di n c u trúc d li u ki u ng n x p Scheme Ph ng pháp t nhiên h n c bi u di n ng n x p d i d ng m t danh sách mà thao tác b sung lo i b m t ph n t c th c hi n m t u danh sách Trong Scheme, m i l n b sung m t ph n t vào danh sách kéo theo vi c t o m t b ôi (dotted pair) m i Hình V.2 Ho t ng b sung (a) lo i b (b) m t ph n t c a ng n x p Ta có hàm Scheme nh sau : (define (empty-stack) ’()) (define empty-stack? null?) (define (push-stack x S) (cons x S)) (define (pop-stack S) (if (empty-stack? S) (display ”ERROR: stack is empty!”) (cdr S))) (define (top-stack S) (if (empty-stack? S) (display ”ERROR: stack is empty!”) (car S))) Ta th y thao tác ng n x p t ng t i v i danh sách Sau ây m t s ví d minh ho thao tác ng n x p s d ng hàm ã có phù h p v i ca1c tiên c t ây : (empty-stack? (push-stack 'a (empty-stack))) > #f (pop-stack (push-stack ’a ’(1 3))) > ’(1 3) C U TRÚC D LI U 153 (pop-stack (push-stack ’a ’(1 3))) > ’(1 3) (top-stack (push-stack ’a ’(1 3))) > ’a (top-stack (pop-stack (push-stack (pop-stack (push-stack (push-stack (pop-stack (push-stack (push-stack (empty-stack)))))))))) > V.2.3 Xây d ng trình so n th o v n b n Sau ây m t ví d n gi n minh ho ng d ng ng n x p xây d ng m t trình so n th o n gi n cho phép th c hi n vào t ng dòng v n b n m t Ho t ng nh sau : hàm nh n dòng vào m t tham bi n l u gi m t vùng nh trung gian (buffer) Dòng vào ch a ký t h n h p mà m t ký t ó có th m t l nh so n th o (edit command) Có b n lo i ký t nh sau : Các ký t khác ba ký t #, $ newline vùng nh trung gian ng tr u ký t v n b n Ký t # dùng xoá ký t Ký t $ dùng c l u gi c vùng nh trung gian xoá t t c ký t vùng nh trung gian Ký t qua dòng newline k t thúc m t dòng vào a n i dung vùng nh trung gian lên hình Ta s s d ng m t ng n x p bi u di n vùng nh trung gian Trong ch ng trình có s d ng m t hàm c c b loop c ký t liên ti p t dòng vào Ch s i ký t ang c th i (define (lineeditor str) (let ((L (string-length in-str))) (letrec ((loop (lambda (i buffer) (if (< i L) (let ((readchar (string-ref in-str i))) (case readchar ((#\#) (loop (+ i 1) (pop-stack buffer))) ((#\$) (loop (+ i 1) (empty-stack))) ((#\.) (map (display (reverse buffer))) (else (loop (+ i 1) (begin (display "ERROR: dot is the end of command!") (newline)))))) (loop (empty-stack))))) (lineeditor "XY$abce#def.") > abcdef 154 L P TRÌNH HÀM Ng i c có th phát tri n trình so n th o ây b n ph c t p h n V.2.4 Ng n x p x lý tình hu ng so n th o v n t bi n Ta mu n r ng ho t ng c a ng n x p g n g i v i ch ng (pile) h n, ngh a vi c b sung lo i b ph n t ch liên quan n m t ch ng ta có th gán cho bi n Ta xây d ng ki u d li u tr u t ng ng n x p t bi n (mutable stack) Stack!(T) (sau tên có m t d u ch m than) nh sau : Types Stack!(T) functions empty-stack! : Stack!(T) empty-stack!? : Stack!(T) boolean push-stack! : T Stack!(T) Stack!(T) pop-stack! : Stack!(T) - T / top-stack! : Stack!(T) - T / phân bi t v i ng n x p ã xét, ta thêm vào sau tên ki u hàm m t d u ch m than ! t ng t t bi n i m ho t ng khác bi t c a ng n x p t bi nlà sau lo i b m t ph n t hàm tr v ph n t nh Trong ch ng tr c, xét môi tr ng làm vi c c a Scheme, ta th y r ng không th s d ng l nh set! thay i n i dung c a ng n x p ch ng h n nh : (define (push-stack x s) (set! s (cons x s)) s) Ta ph i áp d ng tính ch t t bi n c a danh sách, b ng cách bi u di n ng n x p r ng (empty stack) b i m t danh sách khác r ng sau ó thay i b i cdr (define (empty-stack!) (list ’stack!)) (define (empty-stack!? S) (and (pair? S) (null? (cdr S)) (eq? ’stack! (car S)))) (define S1 (empty-stack!)) S1 ; xem n i dung c a ng n x p > ’(stack!) (empty-stack!? S1) > #t b sung (push) lo i b (pop) ng n x p S, ta gi thi t r ng bi n S luôn tr n m t b ôi T t c thao tác v t lý c th c hi n nh l nh cdr nh minh ho hình d i ây Lúc ng n x p r ng, danh sách S ch ch a ph n t ’stack! Sau b sung ph n t ’bob ph n t ng th hai (ngay sau ’stack!) danh sách S Ta xây d ng hàm nh sau : (define (push-stack! x S) (set-cdr! S (cons x (cdr S)))) 190 L P TRÌNH HÀM Khi Scheme tìm ki m m t giá tr t ng ng v i m t tên, Scheme s xem xét tr c tiên khung t ng ng v i nh ngh a c c b , r i sau ó, n u c n thi t, Scheme s xem xét khung t ng ng v i nh ngh a toàn c c, v.v Nh v y, m t nh ngh a s c t d u t i ch m t nh ngh a toàn c c (define x 1) (define (f x) x) (f 2) > x > (define (g L) (define car cdr) (car L)) (g ’(1 5)) > ’(2 5) Ta ã thay i, m t cách c c b , hàm ti n nh car b i cdr bên i u không nh h ng n car hàm g : nh ngh a hàm g, (car ’(1 3)) > Tuy nhiên ta không nên thay lo i nh : (define car cdr) Lúc này, ho t i hàm ti n nh mơi tr ng tồn c c (m c nh), i ng c a car không úng n a : (car ’(1 3)) > ’(2 3) > (cdr ’(1 3)) > ’(2 3) Mơi tr ng tồn c c c rút g n v m t khung ch a bi n ti n nh ngh a (cons, car, cdr, ) bi n c a ng i s d ng Scheme tính giá tr m t bi u th c mơi tr ng tồn c c M t hàm c bi u di n b i m t c p [I ; E], ó I danh sách l nh c a hàm, E mơi tr ng ó hàm c tính Khi b d ch Scheme g i m t hàm m t mơi tr ng, t o m t khung m i C ch a c p : (tham i hình th c, tham i th c s ) Ti p theo, b d ch th c hi n hàm môi tr ng (C, C1, C2, , Cn), ó, danh sách khung (C1, C2, , Cn) môi tr ng x lý c a hàm Mơi tr ng có th khơng liên quan n mơi tr ng g i c a Khi hàm t o bi n (nh l nh define) b t u c th c hi n, b d ch Scheme thêm c p bi n = giá tr t ng ng vào khung C Ví d : (define x 1) MÔI TR NG VÀ C P PHÁT B NH 191 (define (f y) (define x 2) (+ x y)) Ngoài bi n ã nh ngh a tr c ó, lúc khung C c a mơi tr ng tồn c c ch a c p : x = 1, f = P, ó P = [I ; E] , I = (lambda (y) (define x 2) (+ x y)), E = (C) L i g i (f 5) s gây : T o khung C’ = { y = 5} Th c hi n l nh I (C’, C) Sau (define x 2), C’ = { x = 2, y = 5} Th c hi n (+ x y), k t qu hàm + c nh ngh a C ây, x y c nh ngh a khung C’, Do v y l i g i (f 5) cho k t qu : (f 5) > Bây gi ta xét l i tốn cân i tài kho n ngân hàng (ví d (define account (create-account 1000)) s gây : Hàm create-account c g i môi tr ng (C’, C) C’ = {S = 1000}, C khung toàn c c Sau th c hi n (define (switch m) ), C’ = { switch = P, S = 1000 }, v i P = [ l nh c a switch ; (C’, C) ] Hàm create-account tr v giá tr c a switch, P Bi n account có giá tr hàm : P = [ l nh c a switch ; (C’, C) ] Khi có l i g i : (balance account) c ng có ngh a : (account ’balance) b d ch Scheme th c hi n l nh c a switch môi tr ({m = solde}, C’, C) Giá tr c a S C’, t c 1000 Và g i : ((withdrawal! account) 100) c ng có ngh a th c hi n l i g i : (account ’withdrawal!) ng : m c tr c) L i g i : 192 L P TRÌNH HÀM b d ch Scheme th c hi n hàm t o tài kho n b i (withdrawal! account), r i g i hàm tham s 100 : Các l nh c a switch c tính môi tr E = ({ m = withdrawal!}, C’, C) ng : Thông i p withdrawal! gây vi c tính m t hàm m i [I’ ; E], ó I’ = (lambla (n) (if ) (set! S (- S n))) L i g i c a hàm th c hi n l nh môi tr ng : (C’’, { m =withdrawal! }, C’, C), ó C’’ = { n =100 } (set! S (- S n)) thay Khung C’ ã b thay i giá tr c a S khung ch a S, C’ i: C’ = { switch = P, S = 900 } s d ng x lý cân account, S có giá tr 900 i tài kho n sau này, add! withdrawal! hàm VI.4 li u Vào/ra d Các th t c vào/ra c a Scheme cho phép c d li u vào t c ng vào (input port) d li u c ng (output port) C ng có th bàn phím, hình, hay t p (file) a Trong ch ng tr c, ã c làm quen v i hàm read ( c d li u vào t bàn phím), write display ( a d li u hình) Các hàm xem bàn phím, hình c ng vào/ra m c nh (console) C ng vào có giá tr ’current-input-port’ c ng có giá tr ’current-output-port’ Các c ng vào/ra m c nh có th t làm tham i port hàm vào/ra Ch ng h n : (define e (read)) (write e) hay có tham i port : (define (read (current-input-port))) (write e (current-output-port)) hi u qu nh VI.4.1 Làm vi c v i t p T p ph ng ti n l u tr m t dãy d li u b t k m t thi t b nh nh a m m, a c ng, CD-ROM, b ng t , v.v T p c t tên theo quy c c a h i u hành d dàng truy c p n h th ng th m c t ch c ki u phân c p làm vi c ( c/ghi) v i t p, c n thi t l p s liên k t gi a t p v i m t h th ng Scheme S liên k t t o m t lu ng hay dòng d li u (data flow) gi a t p hàm vào/ra c a Scheme Khi c (read) m t t p, c n liên k t t p v i dòng vào (input flow) c a Scheme cung c p hàm c Khi ghi lên (write) m t t p, c n liên k t t p v i dòng (output flow) c a Scheme cung c p hàm a (ghi) Scheme có hàm liên k t m t dòng d li u v i m t t p nh sau : MÔI TR NG VÀ C P PHÁT B NH 193 (open-input-file filename) > liên k t dòng vào v i t p filename ã có m t thi t b nh (open-output-file filename) > liên k t dòng v i t p filename c n t o Sau s d ng m t dòng d li u, c n ph i óng l i b i : (close-input-port flow) > óng dịng vào flow (close-output-port flow) > óng dịng flow liên k t m t t p v i m t dòng, c n s d ng hàm sau ây : (call-with-input-file filename fct) (call-with-output-file filename fct) Các hàm s óng t ng dòng sau s d ng xong Tham bi n fct ph i m t hàm có m t tham bi n cho tham bi n c liên k t v i dòng th c hi n thân hàm dòng s t óng l i sau th c hi n xong i v i tr ng h p call-with-input-file, t p truy c p n ã có m t thi t b nh , i v i tr ng h p call-with-output-file, l i g i tác d ng n u t p ã t n t i Dòng d li u m t it ng Scheme ó có th c ki m tra b i v t : (input-port ? s) > #t n u s m t dòng vào (output-port ? s) > #t n u s m t dịng Nh ã nói trên, dịng vào hi n hành cho b i hàm (current-input-port), dòng hi n hành cho b i hàm (current-output-port) VI.4.2 Các hàm Các hàm cd li u t p ct p c t p c a Scheme có m t tham i tu ch n (optional) m t dòng Hàm : (read [flow]) c s-bi u th c u tiên t i v trí u c c a t p liên k t v i dòng flow d i u c n v trí b t u c a s-bi u th c ti p theo, sau ký t cu i c a s-bi u th c ã c Khi u c i n cu i t p, m t i t ng ánh d u k t thúc t p (end of file) c nh n bi t b i v t : (eof-object ? s) Gi s t i th m c hi n hành ang l u gi t p ”mailto.txt” có n i dung : University of Danang 41, Le Duan St., Danang City, Vietnam Tel: (84.511) 822041, 832678 – Fax: (84.511) 823683 194 S d ng read L P TRÌNH HÀM c m t s-bi u th c nh liên k t dòng vào v i t p nh sau : (define flow (open-input-file ”mailto.txt”)) flow > ’#{Input-port #{Input-channel ”mailto.txt”}} (define s1 (read flow)) s1 > ’university (define s2 (read flow)) s2 > ’of Ho c s d ng k t t p v i dòng vào : (call-with-input-file ”mailto.txt” (lambda (flow) (let ((s (read flow))) s))) > ’university Chú ý tham bi n th hai c a call-with-input-file m t hàm m t bi n, ây nh ngh a hàm b i lambda theo bi n flow Hàm read th c t m t b phân tích cú pháp (syntax analyser) cho s-bi u th c, b ng cách chuy n cách bi u di n bên c a s-bi u th c có m t t p thành bi u di n bên sau ó c x lý b i Scheme Ti p theo ây m t ví d minh ho q trình c t p Ta xây d ng v t ki m tra m t sbi u th c s ã cho (trong tr ng h p toàn b m t nh ngh a hàm h p th c) có m t m t t p f g m s-bi u th c hay không (s f?) V t s d ng m t vòng l p nh letrec c t ng s-bi u th c so sánh v i s cho n tho mãn ho c g p ký hi u k t thúc t p (define (expr-present? s f) ; f tên hàm s c (letrec ((loop ; xây d ng vòng l p cho n g p ký hi u k t thúc t p (lambda (flow) (let ((expr-read (read flow))) (cond ((eof-object? expr-read) #f) ; ki m tra b ng hai s-bi u th c ((equal? expr-read s) #t) (else (loop flow))))))) ; liên k t t p f v i dòng d li u vào (call-with-input-file f loop))) Vi c g i v t c th c hi n nh sau : (expr-present? ’Danang ”mailto.txt”) > #t Scheme cịn có hàm c t ng ký t dòng vào Hàm : (read-char [flow]) c vào m t ký t di chuy n u c sang ký t ti p theo (ng i c có th tìm hi u sâu h n tài li u «Revised(5) Report on the Algorithmic Language Scheme») Hàm : (peek-char [flow]) c vào m t ký t nh ng không di chuy n u c sang ký t ti p theo MÔI TR NG VÀ C P PHÁT B NH 195 Scheme không cho phép s d ng read c m t t p d li u b t k (ki u Pascal), mà ph i c t ng ký t m t b i read-char Ch ng h n : (define flow (open-input-file ”mailto.txt”)) (read-char flow) > #\U L i g i sau ây c ký t u c a t p ”mailto.txt” : (call-with-input-file ”mailto.txt” (lambda (flow) (let* ((c1 (read-char flow)) (c2 (read-char flow)) (c3 (read-char flow)) (c4 (read-char flow))) (list c1 c2 c3 c4)))) > ’(#\U #\n #\i #\v Sau ây ta xây d ng hàm readfile th c hi n c chép n i dung m t t p lên hình Ho t ng c a readfile t ng t v t expr-present? v a nh ngh a ây : s d ng m t vòng l p nh letrec c l n l t ký t b i read-char r i a hình cho n g p ký hi u k t thúc t p eof : (define (read-file f) (letrec ((loop (lambda(flow) (let ((char (read-char flow))) (if (not (eof-object? char)) (begin (display char) (loop flow))))))) (call-with-input-file f loop))) (read-file ”mailto.txt”) > University of Danang 41, Le Duan St., Danang City, Vietnam Tel: (84.511) 822041, 832678 – Fax: (84.511) 823683 T p v n b n M t s t p có c u trúc m t chu i liên ti p kh i (block) Ch ng h n t p v n b n m t chu i dòng (line), m i dòng m t kh i c k t thúc b i d u qua dòng Trong Scheme d u qua dòng ký t quy c #\newline ánh d u v trí cu i c a m t kh i, ng i ta th ng s d ng m t ho c nhi u ký t phân cách (separator mark) Vi c c c th c hi n l n l t cho kh i c a t p D i ây hàm read-block c t t c kh i m t dòng tr v k t qu m t chu i ký t Hàm s d ng hai tham i, m t tham i dòng vào liên k t v i t p v n b n m t tham i v t separator? cho phép x lý c ký t phân cách khác Hàm bên m t vòng l p tích l y ký t c a kh i v a c vào m t danh sách sau ó chuy n i danh sách thành chu i tr c t vào cu i chu i k t qu Tr c c m t kh i, c n g i hàm read-separator xoá h t ký t phân cách : (define (read-block flow separator?) (letrec 196 L P TRÌNH HÀM ((loop (lambda (Lcar) (let ((c (peek-char flow))) (if (separator? c) (list->string (reverse Lcar)) (loop (cons (read-char flow) Lcar))))))) (read-separator separator? flow) (loop ’()))) N u mu n ngh a nh sau : c t ng dòng t p v n b n, ta s d ng v t séparator? c nh (define (separator?) (lambda(char) (eq? #\newline char)) Tuy nhiên ta c ng có th c t p theo t ng t (word) Thông th ng t t cách b i ký t : kho ng tr ng hay d u cách (space), ký t thoát (escape), nh y c t (tabulation), d u qua dòng, d u k t thúc trang Trong Scheme, ký t c nh n bi t b i v t char-whitespace? N u s d ng d u ch m câu m t v n b n ch c n b sung thêm ký t phân cách (char-whitespace? #\space) > ’#t VI.4.3 Ghi lên t p Các hàm ghi lên t p Các hàm ghi lên t p c liên k t v i m t dòng : (write s [flow]) (display s [flow]) (newline [flow]) (write-char char [flow]) Sau th c hi n ghi lên t p, hàm tr v m t giá tr khơng xác nh khơng a lên hình Trong Scheme, vi c ghi lên t p b i display làm ng i c d ck t qu , nh ng ghi lên t p b i display Scheme l i d c (d x lý) h n Ta so sánh l i g i sau : (write #\n) > ’#\n (display #\n) > n (write ”tom and jerry”) > ”tom and jerry” (display ”tom and jerry”) > tom and jerry Nh v y write gi nguyên t t c ký t c bi t c a chu i ghi lên t p Scheme cịn có hàm ghi lên t p t ng ký t dòng Gi s ta c n t o th m c hi n hành t p ”mailto.txt” có n i dung sau : (define flow (open-output-file ”mailto.txt”)) (display ”University of Danang” flow) MÔI TR NG VÀ C P PHÁT B NH 197 (newline flow) ; ghi ký t qua dòng (display ”41, Le Duan St., Danang City, Vietnam” flow) (newline flow) ; ghi ký t qua dòng (display ”Tel: (84.511) 822041, 832678 - Fax: (84.511) 823683” flow) (close-output-port flow) G i hàm readfile xem l i n i dung : (readfile ”mailto.txt”) University of Danang 41, Le Duan St., Danang City, Vietnam Tel: (84.511) 822041, 832678 - Fax: (84.511) 823683 Khi t o t p, ghi ký t qua dòng, ta c ng có th s d ng hàm write-char : (write-char #\newline flow) L nh chép t p Sao chép t p (copy) th ng xuyên c s d ng làm vi c v i t p Ta xây d ng hàm copy-file t ng t hàm c t p read-file Hàm chép t p s x lý l n l t t ng ký t t u t p n cu i t p, cho n g p ký hi u eof Trong hàm, ta dùng m t vòng l p d ng t t p (define (copy-file source target) (call-with-input-file source (lambda (input-flow) (call-with-output-file target (lambda (output-flow) (do ((char (read-char input-flow) (read-char input-flow))) ((eof-object? char)) (write-char char output-flow))))))) (copy-file "mailto.txt" "uodn.txt") #t Khi c n làm vi c v i t p ch a hàm Scheme, ta có th thay th vi c c t ng ký t b i c nguyên m t s-bi u th c Tuy nhiên, theo cách này, dịng thích s không c chép M t cách t ng quát, n u ta có m t t p c t ch c theo c u trúc d ng kh i, ta có th chép t ng kh i b ng cách s d ng ch c n ng c ho c ghi kh i Sau ây m t ch ng trình th c hi n chép t p theo kh i : (define (copy-flow flow-in flow-out rd-block wr-block) (letrec ((loop (lambda() (let ((block (rd-bloc flow-in))) (if (eof-object? block) ’undefine (wr-bloc bloc flow-out)))))) (loop))) 198 L P TRÌNH HÀM VI.4.4 Giao ti p v i h th ng Quá trình giao ti p gi a NSD v i h th ng ph thu c cách cài t trình thơng d ch c a Scheme Tuy nhiên, Scheme chu n có hàm load cho phép t i m t t p ch a ch ng trình Scheme vào b nh s n sàng g i ch y Cú pháp c a hàm load nh sau : (load filename) Ví d : Gi s t i th m c hi n hành có ch a t p ch N i», NSD n p vào b nh g i ch y nh sau : (load ”hanoi.scm”) > hanoi.scm (hanoi #\A #\B #\C) Move one disk from Move one disk from Move one disk from Move one disk from Move one disk from Move one disk from Move one disk from A A B A C C A to to to to to to to B C C B A B B Chú ý r ng giá tr tr v c a load không nh h input-port current-output-port Bài t p ch ng trình l i gi i tốn «Tháp Hà ng n giá tr tr v c a current- ng Cho bi t giá tr tr v t : ((lambda (a) (let ((a 1)) ((f (lambda (x) (+ a x)))) (f a))) 5) > ? V kh i liên k t cho ch u làm vi c sau ây (let*((x 2) (y (+ x x)) (z (* x y))) (let ((x y) (y x) (+ *)) (+ x y z))) Ch liên k t hi n hành c a bi n (+ x y z) ? T i không th dùng car thay head n u nh ngh a l i car ph n trình bày lý thuy t ? Gi i thích ng i ta khơng th s d ng nh ngh a ây : (define car (lambda (L) (if (null? L) ’() (car L)))) MÔI TR NG VÀ C P PHÁT B NH 199 Vi t hàm : a) Tính s l ng ký t m t t p ? b) Tính s l ng ký t không ph i ký t phân cách (không ph i d u cách, nh y c t, hay qua dòng) ? Vi t hàm so sánh hai t p v n b n tr v dòng v n b n u tiên khác gi a hai t p ? T b n s nguyên d ng A, B, C, D cho A 31, B 12, 1000 C 2000, D (ý ngh a c a b n s ngày A tháng B n m C ngày th D, ó D=1 ngày Ch nh t, D=2 ngày th Hai, D=7 ngày th B y) ba s nguyên d ng A1, B1, C1 thoã mãn i u ki n t ng ng i v i A, B, C, cho bi t ngày A1 tháng B1 n m C1 ngày th m y ? Chú ý n n m nhu n Cho s nguyên d ng n bi n th c x thay i t n v i b c t ng h = 0.01 Hãy tính tích phân : I sin n x dx V i giá tr c a n I c tính theo cơng th c : n n 2 n n v i n ch n, n v inl ,n T danh sách s nguyên a0, a1, a2 , a3, a4, tr v m i nghi m nguyên có th c a ph ng trình a th c b c h s nguyên : a0 + a1x + a2 x2 + a3 x3 + a4 x4 = Cho s th c x thay i t n v i b c t ng h = 0.01 n nguyên d ng, b ng cách s d ng c hai ph ng pháp quy l p, tính giá tr c a a th c Tseb sep b c n c cho b i công th c truy h i nh sau : Tn(x) = 2xTn 1(x) Tn 2(x) v i n = 2, 3, 4, Trong ó : T0(x) = 1, T1(x) = x Un+2(x) = xUn+1(x) - 0.25Un(x) v i n = 0, 1, 2, Trong ó : U0(x) = 1, U1(x) = x 10 Cho s th c x thay i t n v i b c t ng h = 0.01 n nguyên d ng, b ng cách s d ng c hai ph ng pháp quy l p, tính giá tr c a a th c Legendre b c n c cho b i công th c truy h i nh sau : Ln+2(x) = xLn+1(x) - (n + 1)2 Ln (x) (2n + 1)(2n + 3) v i n = 0, 1, 2, Trong ó : L0(x) = 1, L1(x) = x 11 Cho s th c x thay i t n v i b c t ng h = 0.01 Tính t ng : x2 x3 xn S = - x + + + (-1) n + 2! 3! n! v i xác cho tr c, ch ng h n = 10-5 200 L P TRÌNH HÀM 12 Cho s th c x thay Tính giá tr : y= it x + n1v ib x + + c t ng h = 0.01 n nguyên d có n > d u c n x 13 Cho s th c x thay i t n v i b Tìm nghi m ph ng trình vi phân : f(x) = cos x - `c t ng h = 0.01 n nguyên d ng x bi t r ng nghi m Dùng ph ng gi a i m c a hàm cos x, ngh a ng pháp l p Newton : x n +1 , , 2 f(x n ) , v i f ‘(x) =x f '(x n ) n o hàm c a f 14 Dãy Fibonaci c nh ngh a nh sau : f0 = f1 = fn = fn-1 + fn-2 v i n Vi t v t ki m tra m t s nguyên m cho tr 15 Cho s n nguyên d nh sau : a1 = a2 = c có ph i s Fibonaci khơng ? ng, tìm giá tr an c xác nh t dãy s nguyên a1, a2, , an an = an-1 + * (n 1) 16 Cho s th c x thay 1+ v i it n1v ib c t ng h = 0.01 Tính t ng : x2 x4 x6 + + + xác cho tr c, ch ng h n = 10-5 17 Tìm t t c s có ch s cho t ng l p ph ng c a ch s b ng s Ch ng h n g i a, b, c ch s c a s c n tìm, ó i u ki n c mô t : ó 100 a + 10 b + c = a a a + b b b + c c c Ví d 153 = 13 + 53 + 33 in theo m i hoán v c a ch s có 18 Nh p vào m t s nguyên ng u nhiên b t k th s ó Ví d nh p vào 195 in 159, 915, 951, 519, 591 19 Cho tr c m t tháng b t k n m, cho biêt tháng thu c q ? Tháng có ngày ? Cho tr c m t ngày b t k n m dd/mm/yyyy, cho biêt s ngày k t ngày u n m 01/01/yyyy (chú ý n m nhu n) ? 20 Cho s th c x thay it n1v ib c t ng h = 0.01 Tính t ng : x3 x5 x7 + + + v i xác cho tr c, ch ng h n = 10-5 x+ MÔI TR NG VÀ C P PHÁT B 21 Viêt ch ng trình tính s 1 NH v i 201 xác 10-4 bi t r ng : cho n 2n 10 22 Cho x th c Tinh t ng : S x2 2! x4 4! 23 Cho s th c x thay x6 x 2n (2n)! 6! cho ên it c t ng h = 0.01 Hãy tính : n1v ib x 2n (2n)! 10 f (x) = e-x sin (2px) g (x) = e-2xsin (2px ) + cos (2px) 24 Cho s th c x thay i t n v i b c t ng h = 0.01 Xây d ng hàm log(a, x) tính logarit c s a c a x Dùng hàm tính giá tr c a bi u th c sau : log x (1 x ) x y= x log (x x 1) 1 25 Dãy s nguyên a0, a1, a2 an, xác nh b ng quy n p nh sau : a0 = an = n an-1 n u n ch n (n = 2, 4, ) an = n + an-1 n u n l Cho tr c n, tìm giá tr an 26 Tìm nghi m c a h ph ax + by + c = px + qy + r = ng trình : Chú ý tr v : «khơng xác nh» «ph thu c n tính» Các h s (n = 1, 3, ) n u aq - bp = n u a b c = = p q r c cho d ng danh sách (a b c p q r) 27 Cho danh sách ph ng, s vect n chi u X, Y Z : X = (x1, x2, , xn) Y = (y1, y2, , yn) Tính tích vơ h ng c a hai vect X Z, v i vect Z có thành ph n zi, i = n, xác nh nh sau : zi = n u < xi + yi< A, A > x i + yi (xi + yi)2 n u x i + yi n u x i + yi A 28 Tính a th c Hermit Hn(x) theo ph H0(x) = ng pháp s quy s l p: c 202 L P TRÌNH HÀM H1(x) = 2x Hn(x) = 2xHn-1(x) - 2(n-1)Hn-2(x) 29 Cho s th c x thay i t n v i b c t ng h = 0.01 n nguyên d ng, b ng cách s d ng c hai ph ng pháp quy l p, tính giá tr c a a th c Laguerre b c n (a = 0) c cho b i công th c truy h i nh sau : Ln+2(x) = (x 2n 3)Ln+1(x) - (n + 1)2 Ln(x) v i n = 0, 1, 2, ó : L0(x) = 1, L1(x) = x 30 Các nghi m c a ph ng trình b c ba quy v d ng t c : x3 + px + q = c tính theo cơng th c : = Arc cos( q x1 p3 27 ) A=2 p Acos x = Acos 3 c vào n nguyên d ng c p giá tr pi, qi, i = n a giá tr nghi m t ng ng x1i, x2i x3i x = Acos 31 Cho N m t s d ng, tính c n b c hai N theo ph ng pháp Newton (không s d ng hàm sqrt) N i dung ph ng pháp : N u g i s giá tr g n úng c a c n b c hai c a n N 0.5* + s giá tr g n úng h n c a N Q trình tính toán d ng l i t t i s N xác c n thi t Gi s ch n = 10 6, ó : < s M CL C CH NG V V.1 C U TRÚC D LI U 147 T V.2 P H P 147 Phép h p t p h p 149 Phép giao t p h p 149 Phép hi u c a hai t p h p 150 Tìm t p h p c a m t t p h p 150 NG N X P 150 V.2.1 V.2.2 V.2.3 V.2.4 V.2.5 V.3 T Ki u d li u tr u t ng ng n x p 151 Xây d ng ng n x p 152 Xây d ng trình so n th o v n b n 153 Ng n x p t bi n 154 Tính bi u th c s h c d ng h u t 156 158 C u trúc d li u tr u t ng ki u t p 158 Ví d áp d ng t p 159 T p t bi n 160 V.4 CAY 162 V.4.1 Cây nh phân 162 P V.3.1 V.3.2 V.3.3 V.4.1.1 Ki u tr u t ng nh phân 162 V.4.1.2 Bi u di n nh phân 164 Bi u di n ti t ki m s d ng hai phép cons 164 Bi u di n d ng y 165 Bi u di n n gi n 165 V.4.1.3 M t s ví d l p trình n gi n 166 m s l ng nút có m t 166 Tính cao c a m t 166 V.4.1.4 Duy t nh phân 167 V.4.2 C u trúc t ng quát 169 V.4.2.1 Ki u tr u t ng t ng quát 169 V.4.2.2 Bi u di n t ng quát 169 Bi u di n nh m t b ôi 169 Bi u di n n gi n qua 170 V.4.2.3 M t s ví d v t ng quát 170 m s l ng nút 170 Tính cao c a 171 V.4.2.4 Duy t t ng quát x lý trung t 171 V.4.3 ng d ng t ng quát 172 V.4.3.1 V.4.3.2 CH Xây d ng cú pháp 172 Ví d : o hàm hình th c 173 NG VI VI.1 MÔI TR MOI TR VI.1.1 VI.1.2 VI.2 C VI.2.1 VI.2.2 VI.3 VI.4 NG 177 Ph m vi t nh 178 Phép óng = bi u th c lambda + môi tr ng 179 Thay i b nh phép óng 180 Nh n bi t hàm 181 Ph m vi ng 182 Th i gian s ng c a m t liên k t 184 Mơi tr ng tồn c c 184 P PHAT B NH 185 Ví d : mơ ph ng máy tính b túi 186 Ví d : toán cân i tài kho n 187 MƠ HÌNH S VÀO/RA D VI.4.1 NH 177 M t s khái ni m 177 Ph m vi c a m t liên k t 178 VI.1.2.1 VI.1.2.2 VI.1.2.3 VI.1.2.4 VI.1.2.5 VI.1.3 VI.1.4 NG VÀ C P PHÁT B D NG MÔI TR NG 189 LI U 192 Làm vi c v i t p 192 TS Phan Huy Khạnh biãn soản 12/1999 203 204 Error! Reference source not found VI.4.2 c d li u t p 193 Các hàm c t p 193 T p v n b n 195 VI.4.3 Ghi lên t p 196 Các hàm ghi lên t p 196 L nh chép t p 197 VI.4.4 Giao ti p v i h th ng 198 ... V.2 .5 Tính bi u th c s h c d ng h u t M t bi u th c s h c th ng c vi t d i d ng trung t , ch ng h n : C U TRÚC D (9 2) * LI U 157 52 Tuy nhiên, b nh , bi u th c c bi u di n d ng (ta s xét c u trúc. .. exp))))))))) (compute postfix-expr)))) 158 L P TRÌNH HÀM (evaluation ’(9 + 52 sqrt *)) > 79.3221 V.3 T p V.3.1 C u trúc d li u tr u t ng ki u t p C u trúc d li u ki u t p (file) mô ph ng m t... t ; T o m t tài kho n m i cân i v i giá tr kh i ng trao i tài nh sau : ng 1000 (define C1 (create-account 1000)) ; Rút s ti n 100 kh i tài kho n (withdrawal! C1 100) ; Cân i l i tài kho n (balance

Ngày đăng: 15/12/2013, 16:15

HÌNH ẢNH LIÊN QUAN

V.2.1. Ki ud li u tr ut ng n gn xp - Tài liệu Cấu trúc dữ liệu_chương 5 docx
2.1. Ki ud li u tr ut ng n gn xp (Trang 7)
Hình V.2. Ho tđ ng b sung (a) và lo ib (b) mt ph nt ca ng nx p. Ta cĩ các hàm Scheme nh  sau :  - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.2. Ho tđ ng b sung (a) và lo ib (b) mt ph nt ca ng nx p. Ta cĩ các hàm Scheme nh sau : (Trang 8)
Hình V.4. Ho tđ ng lo ib mt ph nt khi ng nx p. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.4. Ho tđ ng lo ib mt ph nt khi ng nx p (Trang 11)
Hình V.3. Ho tđ ng b sung mt ph nt vào ng nx p. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.3. Ho tđ ng b sung mt ph nt vào ng nx p (Trang 11)
V.3.1. Cu trú cd li u tr ut ng ki utp - Tài liệu Cấu trúc dữ liệu_chương 5 docx
3.1. Cu trú cd li u tr ut ng ki utp (Trang 14)
Hình V.5. Mơ ph ng cu trú cd li u ki ut pt ngt mt hàng đ i. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.5. Mơ ph ng cu trú cd li u ki ut pt ngt mt hàng đ i (Trang 14)
Hình V.6. Ho tđ ng lo ib mt ph nt khi ng nx p. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.6. Ho tđ ng lo ib mt ph nt khi ng nx p (Trang 17)
Hình V.7. Hình nh cây. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.7. Hình nh cây (Trang 18)
Hình V.8. Hai cây nh phân bi u di : a) bi u th c s  h c ; b)  bi u th c Scheme.  - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.8. Hai cây nh phân bi u di : a) bi u th c s h c ; b) bi u th c Scheme. (Trang 19)
Hình V.10. Cây nh phân cĩ 5 nút. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.10. Cây nh phân cĩ 5 nút (Trang 20)
Cây A trong Hình V.10. trên đây cđ nh ngh anh sau : (create-tree 1  - Tài liệu Cấu trúc dữ liệu_chương 5 docx
y A trong Hình V.10. trên đây cđ nh ngh anh sau : (create-tree 1 (Trang 22)
minh ho các th ut tốn duy t cây trên đây, gi sA là cây đc cho nh hình sau : - Tài liệu Cấu trúc dữ liệu_chương 5 docx
minh ho các th ut tốn duy t cây trên đây, gi sA là cây đc cho nh hình sau : (Trang 24)
Hình V.12. Cây At ng quát cĩ 7 nút A đc bi u di n b i :  - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.12. Cây At ng quát cĩ 7 nút A đc bi u di n b i : (Trang 26)
Hình V.13. Cây At ng quát cĩ 11 nút - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.13. Cây At ng quát cĩ 11 nút (Trang 28)
Hình V.14. Cây nh phân bi u d in bi u th c Scheme. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh V.14. Cây nh phân bi u d in bi u th c Scheme (Trang 29)
11. Trong mt nhà ga, n gi tac ns p xp các toa tàu trên các đ ng ray nh hình v di đây. S   d ng m t ng n x p đ bi u di n ho t đng s p x p các toa tàu trên các đng  ray, hãy cho bi t các thao tác  c n ph i th c hi n sao cho các toa tàu  đ c s p x p theo  th - Tài liệu Cấu trúc dữ liệu_chương 5 docx
11. Trong mt nhà ga, n gi tac ns p xp các toa tàu trên các đ ng ray nh hình v di đây. S d ng m t ng n x p đ bi u di n ho t đng s p x p các toa tàu trên các đng ray, hãy cho bi t các thao tác c n ph i th c hi n sao cho các toa tàu đ c s p x p theo th (Trang 31)
Hình VI.2. Ph thu c ca bin vào mơi tr ng và b nh. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh VI.2. Ph thu c ca bin vào mơi tr ng và b nh (Trang 34)
Hình VI.1. Mơi tr ngh in hành cad ng let. Ví d  trong l nh gán :  - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh VI.1. Mơi tr ngh in hành cad ng let. Ví d trong l nh gán : (Trang 34)
Nh v y, ti thi đ im gi hàm, các tham bin hình th sđ ck t vi các giá tr ca các tham  đi th c s  và các giá tr  c a các bi n t  do s  đc tìm ki m trong mơi trng đ nh  ngh a bi n nh  con tr  th  hai - Tài liệu Cấu trúc dữ liệu_chương 5 docx
h v y, ti thi đ im gi hàm, các tham bin hình th sđ ck t vi các giá tr ca các tham đi th c s và các giá tr c a các bi n t do s đc tìm ki m trong mơi trng đ nh ngh a bi n nh con tr th hai (Trang 36)
Hình VI.5. Phép đĩng sau khi th ch in set!. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh VI.5. Phép đĩng sau khi th ch in set! (Trang 37)
Ti thi đ im gi (f 1), bina đc liên kt giá t r1 (tham bin hình th c nh n giá tr c a tham  đi th c s ), nh ng liên k t này khơng đc nh n bi t b i g - Tài liệu Cấu trúc dữ liệu_chương 5 docx
i thi đ im gi (f 1), bina đc liên kt giá t r1 (tham bin hình th c nh n giá tr c a tham đi th c s ), nh ng liên k t này khơng đc nh n bi t b i g (Trang 38)
Hình VI.6. Thay đi car ca Scheme thành car ca Common Lisp. - Tài liệu Cấu trúc dữ liệu_chương 5 docx
nh VI.6. Thay đi car ca Scheme thành car ca Common Lisp (Trang 41)
(tham đi hình th c, tham đi th c s) - Tài liệu Cấu trúc dữ liệu_chương 5 docx
tham đi hình th c, tham đi th c s) (Trang 46)

TỪ KHÓA LIÊN QUAN

w