본문 바로가기

분류 전체보기

이진 검색 트리 3 Delete자식 노드가 없는 경우 그냥 삭제한다.자식 노드가 1개인 경우부모와 자식이 각각 1개이므로 선형적인 형태이다. 삭제하려는 노드의 부모와 삭제하려는 노드의 자식을 이어주면 된다.자식 노드가 2개인 경우해당 노드를 삭제하고 다른 곳의 노드 값을 넣는다. predecessor, successor를 넣어야 한다.자식이 2개이므로 오른쪽 서브트리의 최소값이 successor가 된다.그 successor의 자식이 없다면 그냥 삭제하면 되고, 1개라면 자식을 successor의 위치에 넣는다. tree_delete(T,z): if left[z] == None or right[z] == None: #자식 노드가 없는 경우 삭제. y=z else: y = tree_successor(z) #자식이 있다면 suc..
이진 검색 트리 2 x를 루트로 하는 이진트리에서 최소값을 찾으려면 맨 왼쪽에 있는 리프 노드까지 도달하면 된다. 왼쪽으로 계속 내려가다가 더 이상 자식이 없다면 그 값이 최소값이다.tree-minimum(x): while left[x] != None: x=left[x] return x 반대로 최대값은 오른쪽 아래로 내려가야 한다.tree-maximum(x): while right[x] != None: x=right[x] return x Successor노드 x의 successor란 key[x]보다 크면서 가장 작은 키를 가진 노드.1. 노드 x의 오른쪽 부트리가 존재할 경우, 오른쪽 부트리의 최소값.2. 오른쪽 부트리가 없는 경우, 노드 x의 부모를 따라 올라가다가 처음으로 오른쪽 방향으로 올라간다면 그 노드가 x의 su..
Ajax 간략 Ajax는 Asynchronous javascript xml 의 약자이다. 브라우저가 웹서버와 통신하면서 정적인 웹페이지를 동적으로 만들어준다.꼭 xml만을 사용하는 것은 아니며 JSON을 사용하기도 한다.XMLHttpRequest라는 API를 사용한다. XMLHttpRequest서버와 통신해야하기 때문에 서버 구축이 되어 있어야 한다! 서버에 time.php라는 파일을 만들고 로컬 브라우저에서 html 페이지를 띄운 뒤에 버튼을 클릭하면시간을 가져오자 일단 C:\APM\Apache24\htdocs 이 경로로 들어가서 demo1.html 파일과 time.php 파일을 만든다. 코드는 아래와 같다. demo1.htmltime : time.php 파일 생성 후 위 코드 입력 브라우저를 켜고 주소창에 loca..
이진 검색 트리 계층적인 자료를 표현하기 위해 트리를 사용한다.여러 개의 키를 저정한다.다음과 같은 연산들을 지원하는 자료구조insert - 새로운 키의 삽입search - 키 탐색delete - 키 삭제 search insert delete 배열 정렬 O(logn) O(n) O(n) 정렬x O(n) O(1) O(1) 연결리스트 정렬 O(n) O(n) O(1) 정렬x O(n) O(1) O(1) 정렬되거나 정렬되지 않은 배열 혹은 연결리스트를 선택하면 O(n)은 항상 존재함.탐색트리, 해쉬를 사용해서 보다 효율적인 방법을 구현할 수 있음.search, insert, delete의 연산은 트리의 높이에 비례하는 시간 복잡도를 가짐. search찾으려는 값 k와 노드 key[x]를 비교한다. 같다면 찾은거고 k가 작다면 왼쪽..
트리와 이진트리 계층적인 구조를 표현조직도, 디렉토리, 가계도 트리는 노드(node)와 링크(link)로 구성됨맨 위의 노드는 루트(root), 노드들을 연결하는 선을 link, edge, branch라고 부름 어떤 노드 A의 아래에 노드 B가 있으면 노드 A는 B의 부모 노드이고 B는 A의 자식 노드이다.부모가 동일한 노드는 형제(sibling) 관계이다.루트 노드를 제외한 트리의 모든 노드들은 유일한 부모 노드를 가진다.자식이 없는 노드는 리프(leaf) 노드 서브(sub)트리 : 트리의 어떤 부분을 잘라내도 트리다.레벨 : root 노드의 레벨을 0이라고 하면 아래로 내려갈 수록 1, 2, 3 ... n 레벨이 된다. root 노드의 레벨을 1이라고 하면 아래로 내려갈 수록 2, 3, 4, ... n이 된다. 트리..
IWINV 클라우드 서버 대여 받은 클라우드 서버에 리눅스 운영체제가 깔려있다. Ubuntu 16.04 LTS이다. 여기에 Apache + PHP + Mysql 도 기본으로 깔려있다. 그리고 Xwindow라는 건 GUI 환경을 제공해주는 거라고 생각하면 된다. 아무래도 리눅스는 터미널에서 명령을 작성하고 출력물도 확인해야 해서 xwindow가 큰 장점인지는 잘 모르겠다. 그래도 완전 터미널이면 답답했겠지. DB와 연동하려면 이런 저런 설정 과정이 필요하다. 이것이 우분투 리눅스다 라는 도서를 학교 도서관에서 빌렸는데 다행히도 설명도 잘 되어있고 동영상 강의도 있고 카페에 질문을 올리면 답도 잘 해주신다. 학교에서 배우는 것보다 훨씬 낫다! 이것이 우분투 리눅스다 카페 주소 : http://cafe.naver.com/thisisl..
Port 3306 is Configured in Firewall https://mariadb.com/kb/en/library/configuring-mariadb-for-remote-client-access/ linux 포트 설정 firewall-cmd --add-port=3306/tcp firewall-cmd --permanent --add-port=3306/tcpufw allow 3306과 완전히 같은 것인가?..
vi 편집기에서 검색하기 Ctrl + F = ? 삽입(Insert) 중이라면 터미널창에서 esc를 눌러 편집을 중단하고 키보드의 슬래시 ('/')를 누른다.그러면 터미널 하단에 /가 입력되는데 거기서 찾고자 하는 문장, 단어를 검색하면 된다!