목록2학년 1학기 (67)
오래 못 할 짓 하지 않기

Inorder Traversal left = make_copy(p->left) 3-4) root의 오른쪽을 copy하여 연결 t->right = make_copy(p->right) 3-5) 새로 생성한 node의 pointer를 return return t; Equal test - 시작 전 Node 개수가 다르면 false 같으면 동일 여부 판단 실행 root 이하 내용이 같은지 check 하여 그 결과를 return - 동작 두 root가 모두 NULL -> true 리턴 두 root 중 한 개만 NULL ->false 리턴 두 root의 data값이 다르면 -> false 리턴 ((왼쪽 내용이 같다) and (오른쪽 내용이 같다)) --> 이거 short evaluation 임! 왼쪽이 false면 ..

Big - O Natition -> Statements 보고 O( ? ) 구할 줄 알아야 함 --> ' 최고차항만 고려한다 ' 기억하기 스택 (Stack) First in , last out Push Pop Stack 응용 (할 줄 알아야함 시험에 나온다고 함) 연습하기!! Expression (수식) 표현법 1 ) infix → a+b →부호가 숫자 2개 안(in)에 2 ) prefix → +ab →부호가 숫자 2개 앞(pre)에 3 ) post → ab+ →부호가 숫자 2개 뒤(post)에 ## infix → prefix 하는 법 [ *문자가 나오는 순서는 식과 같음 ] 1) 식의 순서에 맞게 괄호를 친다. 2) 해당 괄호가 *열리는* = "("가 오는 곳에 괄호 안에 있는 부호를 넣는다. ex) a..

Comparators Equality (A=B) - 같은지 확인하는 회로 = XNOR 4비트 2진수를 회로로 가져가면 이런 모양이 나온다. 해석해 보자면 같으면 0이 나올 것이다. 그리고 마지막 4input - Nor 게이트에서 모두 0이 들어가야 1이 나옴. 1 = 모두 다 같다는 의미. 이런 모양으로도 구현함. 처음 게이트에서는 같아야 1이 출력되고, 마지막에 And로 곱했을 때 1이 나오면 같다는 뜻. 하나라도 0이 들어오면 다 망함. Greater-than & Less-than 예를 드는 게 빠름. A=0 , B=1 이라고 생각하면 Am0 0 0 1 >m1 0 1 0 >m2 0 1 1 >m3 1 0 0 >m4 1 0 1 >m5 1 1 0 >m6 1 1 1 >m7 문제)) Implementation..

Carry look ahead adder - 사용하는 이유 : 시간 절약 Propagation delay + carry out 주는 것까지 계산하는 시간을 생각하면 너무 길다. 그러므로 해당 게이트에서 정확한 값보다는 자리올림이 발생하는지만 파악 할 수 있는 식을 만든다. 따라서, AB = (Cin이 없을 때 carry out이 있는지 ) 혹은 (+) A xor B ( Cin이 있을 때 carry out이 있는지)를 확인하여 시간을 절약 + AB = Carry generator = 캐리 받은 거 없는데 만들어 내서 G(generator)라고 부름 A xor b = Carry propagation = 캐리 '받고' 만들어내는 놈이라서 P(propagation)라고 부름 Critical Path = [ 전체..

반가산기 ( Half adder ) - 입력 : x y - 출력 : cout s 식의 모양은 이렇다. 자리 올림이 발생하는 경우에는 C=1 ,아니면 C=0 진리표는 이러하다. C = ab = a,b 둘 다 1이어야 1 S = a exclusive or b = a와 b가 다를 때 1 전가산기 (Full adder) 반가산기에서 입력만 하나 추가된다. Cin으로, 전 계산에서 자리올림으로 추가되는 숫자가 있는지까지 고려함. 식의 생김새는 이렇다. 진리표는 이렇다. Propagation delay (전파 지연) 입력이 변하면, 게이트의 출력은 즉시 변하지 않고 약간의 딜레이가 있다. = 입력이 변했을 때, 출력이 변할 때까지 시간이 필요하다. + 게이트의 출력이 다른 게이트의 입력이 될 때, 지연은 더욱 증가..

PI Table 저번 시간에 배운 대로 정리한 PI식들을 위와 같은 방법으로 표를 만든다. 1 - m원소에 있는 숫자들을 숫자들을 위에 나열한다. 2 - 정리한 PI들을 왼쪽에 label에 넣는다. 3 - 해당 PI에 있는 숫자들에 표시를 해준다. [ 1,2 교차점에서 ] 4 - 각 표시들에서 세로 선을 그었을 때, 해당 숫자가 없으면 그 표시가 있는 가로가 EPI가 된다. 5 - 찾은 EPI 에 있는 숫자를 가로줄로 그어 그 숫자의 열은 없앤다. 6 - 남은 숫자들이 있는 항들로 필요한 PI로 식을 마무리한다. 콰인 - 맥클러스키 방법 - Don't care 가 있는 경우 Don't care 가 있을 땐, 1이라고 가정하고 푼다. 단, EPI를 구하는 식에서는 Don't care 항들을 열에 나열하지 ..

POS 카르노 맵 Simplification 1. SOP 식= f(a, b, c, d)에서 f'(a, b, c, d)를 한다. 2. f'(a,b,c,d) = @@@식을 구해낸다. 3. 드모르간 법칙을 이용해서 식을 재전개 한다. ex) f' =ac' + a'c + abd f = (a'+c)(a+c')(a'+b'+d') 변수가 5개인 카르노맵 보는 법 : [ A가 0일 때 ] , 나머지 4개의 변수들로 카르노맵 1개 / [ A가 1일 때 ] , 나머지 4개들 " " ※ 한 맵의 정사각형은 다른 맵의 해당 정사각형에 인접 해당 표를 보면 1. 빨간색 사각형은 x5 = 0 일 때나 1일 때나 둘 다 1이다. 변하지 않은 건 x'1와 x3 2. 파란색도 위와 같음 3. 주황색은 x5=0일 때 없었는데 1이 되면..

참고 : https://issac-rok.tistory.com/14 잘 알려주심 [Digital design] K-map(2), 주항과 필수주항 학부생의 입장에서 내용을 정리하였으며 피드백을 환영합니다. K-map 예시 2가지 예를 들겠다. 가장 간략화된 수식은 항의 개수가 최소이고 각각의 항이 최소의 리터럴 수를 갖는 식을 의미한다. issac-rok.tistory.com 1. Implicant (항) - 항은 카르노맵에서 1의 묶음들을 의미한다. - 그냥 모든 1들, 혹은 1들로 만들 수 있는 사각형의 집합 2. Prime Implicant = PI (주항) - 네모를 가능한 크게 묶었을 때, 나오는 항들 ( 크게 묶은 거 안에서 작게 묶는 건 X) [ 지금까지 했던 것 ] 지금까지 한 방법은 1을 ..

Linked List 활용 ex) list 두 개 같은지 확인하는 프로그램 재귀함수로 구현 - General If 둘 다 첫 노드가 가리키는 게 NULL이다 => True + 둘 중 하나가 NULL => False - NULL 판단 함수 ( 리스트 a , 리스트 b ){ return (같은지 판단하는 함수 (a.head , b.head)) } - 같은지 판단하는 함수 (*p , *q){ if ((p ==NULL) and (q==NULL)) ==> return true // 둘 다 NULL로서 같은 거니까 if ((p ==NULL) or (q==NULL)) ==> return false; //and조건은 처리 됐으니 이렇게 해도 됨. if(데이터 내용이 같다(*p,*q)) ==> return(같은지 판단하..

오늘 핵심은 회로 그리기 AND OR → NAND NOR 로 바꾸기다. 바꾸는 이유 : AND OR보다 더 간단히 더 많은 걸 표현할 수 있기 때문에. 알고 넘어가야 하는 내용 1. Inversion 두 개를 지나는 것은 아무것도 없는 회로를 지나는 것과 같은 결과이다. 2. Inversion 하나 = x와 x가(=같은 입력이) 들어오는 Nand 혹은 Nor 게이트 → Nand나 Nor만 써야하는 상황에서 inversion이 있을 땐 2번과 같이 바꿀 수 있다. 3. 드모르간의 법칙 (AB)' = A'+B' [변환] Nand → 들어오는 input이 inversion되는 or 게이트 - A , B 가 and게이트로 들어가고 나오면서 Inversion 된다면 입력될 때 Inversion 시키는 OR 게이트..