목록 전체보기 (198)
공부중
이진 트리의 경우도 배열과 리스트 2가지 방법으로 구현이 가능하다. 트리가 완성된 이후에는 매우 자주 탐색이 이루어 진다. 그래서 배열로 구성 해볼 만 하다. 배열을 기반으로 이진 트리를 구현하려면 노드에 고유의 노드 번호를 부여해야 한다. 이 번호들은 데이터가 저장되어야 할 배열의 인덱스 값이다. 인덱스가 0인 배열의 요소를 사용하지 않는 이유는 개인 차가 있겠지만 구현의 편의와 실수를 줄이기 위해서 일반적으로 사용하지 않는다. 다음은 연결리스트 기반의 구현방법이다. 그림만 봐도 단번에 이해가 될 만큼 쉽게 표현 가능하다. 그림에 나온대로 구성하면 되므로 별 다른 설명은 필요 하지 않을 것 같다.. 만약에.. 연결리스트로 이진 트리를 구현 했다고 했을시. "삭제는 어떻게 하겠는가?" 둘 이상의 노드로 ..
int의 크기가 64bit OS에 맞춰서 변할 줄 알았는데 int의 크기는 똑같다는 결과가 나왔었다 하지만 주소의 크기는 변했을꺼라 믿고 다시 Visual Studio 2012를 켯다. 소스코드는 다음과 같다. #include int main() { std::cout
이번에는 이진 트리를 구현 해보기 전에.. 이진 트리는 뭔가용?? 매우 간단 하게 설명하면 위 그림처럼 자식 노드가 2개씩 달린 트리이다. 이진 트리는 다음 두 조건을 만족 해야 한다. 루트 노드를 중심으로 두 개의 서브 트리로 나뉘어진다.나뉘어진 두 서브 트리도 모두 이진 트리어야 한다. 그러면 다음 구조는 이진 트리가 맞을까?? 이것을 보고 이진 트리가 아닌거 같지만 이것도 이진 트리가 맞다 왜냐하면 이진 트리 관련해서 다음의 내용이 추가로 정의 되어있다. 노드가 위치할 수 있는 곳에 노드가 존재하지 않는다면 공집합(empty set)노드가 존재하는 것으로 간주 공집합 노드도 이진 트리의 판단에 있어서 노드로 인정! 그러므로 공집합까지 보이면 다음 그림과 같이 된다. 이러한 공집합 노드 때문에 서브 ..
이번에는 트리 자료 구조이다. 트리(Tree)는 말그대로 … 나무이다. 트리구조는 나무를 보고 나뭇가지가 쭉쭉 뻗어있는 모습이 연상되서 이름이 그렇게 지어진 것 같다. 이렇게 나뭇가지처럼 뻗은 모습이 연상 된다. 트리는 계층적 관계(Hierarchical Relationship)를 표현 한 자료 구조이다. 단순히 무엇인가 저장하고 꺼내는 것이 전부가 아닌 무엇인가 표현하는 것이다 단지 표현을 위해서 저장과 삭제라는 기능이 제공되어 있을 뿐 이다. 트리가 아래로 뻗으나 옆으로 뻗으나 중요치는 않다. 중요한 것은 가지가지를 늘려가며 뻗어간다는 사실이다. 이러한 구조도 트리 구조이다. 방향만 다르고 가지가 뻗어가는 모습은 같지 않은가? 일단 트리에 관해서 용어를 설명하자면 … 노드 node트리의 구성요소에 해..
IP는 Internet Protocol의 약자로 인터넷 상에서 데이터를 송수신할 목적으로 컴퓨터에게 부여하는 값이다. 반면 PORT번호는 컴퓨터에게 부여하는 값이 아닌, 프로그램상에서 생성되는 소켓을 구분하기 위해 소켓에 부여되는 번호를 뜻한다. ∙인터넷 주소(Internet Address) 인터넷에 컴퓨터를 연결해서 데이터를 주고받기 위해서는 IP주소를 부여 받아야 한다. IP주소 체계는 두 종류로 나누어진다. IPv4(Internet Protocol version 4)4바이트 주소체계IPv6(internet Protocol version 6)16바이트 주소체계네트워크 주소(네트워크 ID)란 네트워크의 구분을 위한 IP주소의 일부를 말한다. IPv4 기준의 4바이트 IP주소는 네트워크 주소와 호스트(컴..
∙프로토콜(Protocol) 프로토콜이란 컴퓨터 상호간의 대화에 필요한 통신규약이라고 볼 수 있다. 쉽게 말해서 서로 데이터를 주고 받기 위해서 정의해 놓은 약속을 뜻한다. ∙소켓의 생성 #include int socket(int domain, int type, int protocol);성공 시 파일 디스크립터, 실패 시 -1 반환domain소켓이 사용할 프로토콜 체계(Protocol Family)정보 전달type소켓의 데이터 전송방식에 대한 정보 전달protocol두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달 ∙프로토콜 체계(Protocol Family) socket 함수의 첫 번째 인자로 생성되는 소켓이 사용할 프로토콜의 부류정보를 전달해야 한다. 이러한 부류정보를 가리켜 '프로토콜 체계'라 한다...
정수형이 서버세미나를 한다고 해서 덥석 물어볼려고 한다 그전에 정리를 조금 해봐야겠다.. ∙네트워크 프로그래밍이란? 네트워크로 연결되어있는 서로 다은 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것. 운영체제에서 소켓(Socket)이라는 것을 제공하기 때문에 물리적인 연결을 기반으로 하는 소프트웨어적인 데이터 송수신 방법을 고민할 필요가 없어졌다. 이는 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치를 의미한다. ∙전화 받는 소켓의 구현 순서비유대상함수1 전화기 구입socket 2 전화번호bind 3 전화기의 케이블 연결listen 4 수화기를 들기accept #include int socket(int domain, int type, int protocol);성공..
이전 글에 이어서 원형 큐를 구현 해보겠습니다. Candy.h#pragma once enum eCandy { eRed = 1, eGreen, eBlack, }; class Candy { public: Candy(); virtual ~Candy(); virtual void SeeCandy() = 0; private: }; class CRedCandy : public Candy { public: CRedCandy(); virtual ~CRedCandy(); void SeeCandy(); private: }; class CGreenCandy : public Candy { public: CGreenCandy(); virtual ~CGreenCandy(); void SeeCandy(); private: }; cl..