프로그래밍 355

[C++] 이진 탐색 트리 구현하기 (Binary Search Tree)

이진 탐색 트리 (Binary Search Tree)이진 탐색트리는 데이터의 크기에 따라 노드의 위치가 다르다.정의는 아래와 같다. (1) 모든 원소는 서로 다른 유일한 키를 갖는다.(2) 왼쪽 서브 트리에 있는 원소의 키는 그 루트의 키보다 작다.(3) 오른쪽 서브 트리에 있는 원소의 키는 그 루트의 키보다 크다.(4) 왼쪽 서브트리와 오른쪽 서브트리도 이진 탐색 트리이다. 이진 탐색 트리 C++ 구현이제 이진 탐색트리를 구현할텐데,- 탐색(search)- 삽입(insert)두 가지 기능을 수행하도록 할 것이다.구현해볼 이진 탐색트리는 아래와 같이 생겼다. 주황색 표시된 부분은 새로 추가해볼 노드다.1234567891011121314151617181920212223242526272829303132333..

[C++] 이진 트리 구현하고 순회하기 (Binary Tree in C++)

이진트리(Binary Tree)란?모든 노드의 차수를 2 이하루 정하여 전체 트리의 차수가 2 이하가 되도록 만든 것이 이진트리다.이진트리는 왼쪽 자식노드와 오른쪽 자식노드 2개만을 가질 수 있으며, 공백노드도 이진트리의 노드로 취급한다.이진트리의 서브트리 모두 이진트리이다. 이진트리의 종류이진트리는 포화 이진 트리(Full binary tree), 완전 이진트리(Complete binary tree), 편향 이진트리(Skewed binary tree) 3가지가 있다.포화 이진트리는 모든 레벨에 노드가 꽉찬 이진트리를 말하며, 공백 노드가 없다.즉 트리의 높이가 h 일때 2^(h+1) - 1 개의 최대 노드수를 갖는 이진트리이다. 완전 이진트리는 노드 개수가 n 개일 때, 노드의 위치가 포화 이진트리의 ..

[안드로이드] Retrofit으로 API 통신하기

이번 강의에서는 안드로이드를 위한 HTTP 클라이언트 레트로핏을 이용해서 API 통신을 구현 해 보도록 하겠다.먼저, JSON 값을 돌려주는 서버가 준비 되어 있어야한다.여기서는 간단히...깃헙 contributors를 통해 살펴보겠다.주소는 https://api.github.com/repos/square/retrofit/contributors 이다. 목표https://api.github.com/repos/square/retrofit/contributors 에 들어가면 아래와 같이 JSON 형식으로 된 정보들이 나온다. 오늘 해볼 것은 저 정보들 중에서 특히 'login' 정보를 TextView에 받아 오는 것이다. build.graddle (app) 12345dependencies { ... compi..

[Retrofit] 안드로이드로 HTTP 통신하는 Retrofit 소개

Retrofit 안드로이드 앱을 개발하면서 백엔드는 거의 필수 요소가 되었다.백엔드를 개발할 줄 몰랐을땐 Firebase 처럼 손쉽게 백엔드 기능을 구현해주는 BasS를 사용했지만,요새는 Node.js를 이용해서 손 쉽게 백엔드 서버를 만들 수 있게 되었다. 2012년 부터 쭉- 나는 안드로이드와 REST API 서버 간에 HTTP 통신을 할때는 주로 AsyncTask를 사용 했었다.귀찮기는 했지만 그게 유일한 길인 줄 알았는데, 이번에 새로운 라이브러리를 하나 알게 되었다.바로, Retrofit이다. Async보다 성능이 뛰어나대서 다음 프로젝트에 바로 적용시킬 예정이다. 공식 홈페이지에 사용법이 친절하게 적혀있다. >> http://square.github.io/retrofit/친절하게 영어로...^..

Node.js 앱에서 NPM으로 Bootstrap/JQuery 다운 받아 사용하기

static redirect를 사용해서 npm install로 다운받은 패키지들을 사용할 수 있다. First install the packages: npm install jquery npm install bootstrap Then on the server.js: var express = require('express'); var app = express(); // prepare server app.use('/api', api); // redirect API calls app.use('/', express.static(__dirname + '/www')); // redirect root app.use('/js', express.static(__dirname + '/node_modules/bootstrap..

안드로이드 구글 애널리틱스 (Google Analytics) 연동하기

안드로이드에서 구글 애널리틱스 연동하는 방법을 살펴보자!구글이 제공하는 시작 가이드가 있지만 가이드대로 했더니 약간 부족한 면이 있어 포스팅한다.구글 애널리틱스 콘솔 화면에서의 작업이 아닌 안드로이드 스튜디오에서 해야할 것들에 대해서 자세히 다룰 것이다. 구글 애널리틱스 콘솔에서 준비하기우선 analytics.google.com 에 접속하여 앱 데이터를 만든다.여기서 얻어야 할 것은 바로 UA-00000000-0 형태로 생긴 추적 코드다. AndroidManifest.xml 1234567891011121314 ... Colored by Color Scriptercs 안드로이드 스튜디오에 들어가서 프로젝트를 열고, AndroidManifest.xml 파일을 연다. 태그 아래에 인터넷, 액세스 네트워크 스테..

(5) RESTful API 활용하기 - 웹편

글 목차(1) Node.js로 RESTful API 만들기 - POST편(2) Node.js로 RESTful API 만들기 - GET편(3) Node.js로 RESTful API 만들기 - PUT편(4) Node.js로 RESTful API 만들기 - DELETE편현재글 >> (5) RESTful API 활용하기 - 웹편(6) RESTful API 활용하기 - 안드로이드 앱편 (작성중) 이제 앞선 강의에서 만든 API 서버를 가지고 웹에서 요청을 날려볼 것이다.그러면 우선 웹을 만들어야 한다. 보통은 html을 만들지만, 이 강의에서는 쉽고 빠르게 작성하기 위해 pug 뷰 엔진을 사용하도록 하겠다. 프로젝트가 있는 경로에서 아래 명령어를 이용해 pug를 설치하자.npm install pug app.js그..