김태훈10
가입: 2011년 10월 15일 올린 글: 21
|
올려짐: 2011년12월12일 16:22 주제: 8번숙제 2번3번 간단한 1가지케이스 테셋 |
|
|
코드: | let fot (x,_) = x
let sot (_,x) = x
let deqeleQ q = fot (StringSetQ.deq q)
let deqsubQ q = sot (StringSetQ.deq q)
let deqeleQQ q = fot (StringSetQQ.deq q)
let deqsubQQ q = sot (StringSetQQ.deq q)
let a0 = StringSetQ.emptyq
let a1 = StringSetQ.enq (a0,"D") (* D in *)
let a2 = StringSetQ.enq (a1,"C") (* C in *)
let a3 = deqsubQ a2 (* D out*)
let a4 = StringSetQ.enq (a3,"B") (* B in *)
let a5 = StringSetQ.enq (a4,"A") (* A in *)
let a6 = StringSetQ.enq (a5,"B") (* B in *)
let q1 = a6
let b0 = StringSetQ.emptyq
let b1 = StringSetQ.enq (b0,"D") (* D in *)
let b2 = StringSetQ.enq (b1,"C") (* C in *)
let b3 = StringSetQ.enq (b2,"B") (* B in *)
let b4 = deqsubQ b3 (* D out*)
let b5 = StringSetQ.enq (b4,"A") (* A in *)
let b6 = StringSetQ.enq (b5,"A") (* A in *)
let q2 = b6
let printsuccess q1 q2 =
if (q1!=q2)&&((deqeleQ q1)=(deqeleQ q2))&&((deqeleQ (deqsubQ q1))=(deqeleQ (deqsubQ q2)))&&((deqeleQ (deqsubQ (deqsubQ q1)))=(deqeleQ (deqsubQ (deqsubQ q2)))) then (print_string("SUCCESS: StringSetQ"); print_newline()) else (print_string("Failed"); print_newline())
let q30 = StringSetQ.emptyq
let q3 = StringSetQ.enq (q30,"D")
let qq0 = StringSetQQ.emptyq
let qq1 = StringSetQQ.enq (qq0,q1)
let qq2 = StringSetQQ.enq (qq1,q3)
let qq3 = StringSetQQ.enq (qq2,q2)
let printsuccess2 qq3 =
if ((deqeleQQ qq3)=q1)&&((deqeleQQ (deqsubQQ qq3))=q3)&&((deqsubQQ (deqsubQQ qq3))=StringSetQQ.emptyq) then (print_string("SUCCESS: StringSetQQ"); print_newline()) else (print_string("Failed"); print_newline()) |
printsuccess q1 q2; (*StringSetQ에서 q1=(["A";"B"],["C"])와 q2=(["A"],["C";"B"])가 잘작동되는지확인*)
printsuccess2 qq3;; (*StringSetQQ에서 q1과 q2를 같은것으로 인식하여 나중에 들어온건 안넣는지확인*)
을 치시면됩니다
StringSetQ와 StringSetQQ를 확인할수있지만 단한가지경우만제공됩니다;;
3번을 테스트하시려면 이코드에서 Set만 전부빼버리면됩니다 |
|