반응형

전체 글 2934

[XML.NET] 2. XML 문서 구조

2. XML 문서 구조 XML 문서는 선언부와 루트 요소로 구성합니다. 선언부는 로 끝납니다. 그리고 이처럼 XML 문서에서 로 끝나는 구문을 처리 구문(Processing Instruction)이라 부릅니다. 선언부의 시작은 로 끝납니다(5). 선언부에는 버전 정보(2)는 필수적으로 입력해야 합니다. 인코딩 정보(3)나 의존성 정보(4)는 선택적으로 표현할 수 있습니다. 인코딩 정보는 사용할 언어 코드에 관한 정보를 말하며 기본값은 UTF-8 입니다. 의존성 정보는 다른 문서를 참고하는지 여부를 나타냅니다. standalone이 "yes"이면 외부 문서를 참고하지 않고 "no"일 때는 외부 문서를 참고할 수 있다는 의미입니다. 그리고 standalone의 기본값은 "no"입니다. XML 문서의 선언부 ..

[XML.NET] 1. XML 소개

이 책은 XML의 기본적인 내용을 소개하고 .NET Framework에서 제공하는 다양한 XML 기술을 소개합니다. .NET Framework에서는 다양한 XML 기술을 제공합니다. 이러한 XML.NET 기술을 이용하면 높은 생산성과 표준 기반의 데이터 표준화 및 ADO.NET 기술 등을 효과적으로 사용할 수 있습니다. XML은 여러분이 아시는 것처럼 W3C 표준으로 XML.NET에서도 W3C에서 권장하는 XML과 스키마, DOM 등의 표준을 따르고 있습니다. 이는 다른 플랫폼의 서비스나 서로 다른 시스템 사이의 데이터 표준화 및 상호 운용을 보장한다는 의미입니다. 1. XML 소개 XML(Extensible Markup Language)은 W3C에서 권장하는 확장 가능한 마크업 언어입니다. XML은 대..

[자료구조와 STL] 18. list 만들기 – 더미 노드없는 이중 연결 리스트 소스 코드

//EHList.h – 더미노드가 없는 이중 연결 리스트 #pragma once namespace EHLIB {     templatetypename T>     class list     {         struct node         {             node *prev; //이전 노드의 위치 정보             node *next; //다음 노드의 위치 정보             T data; //노드에 보관된 요소             node(T data=0):data(data) //초기화             {                 prev = next = 0;             }         };       ..

[자료구조와 STL] 17. list 만들기 – 더미 노드없는 이중 연결 리스트

3. 2 list 만들기 – 더미 노드없는 이중 연결 리스트 이번에는 더미노드가 없는 이중 연결 리스트를 만들어 봅시다. 더미노드가 없는 이중 연결 리스트에도 node의 정의나 iterator의 정의는 차이가 없습니다. 여기에서는 차이가 있는 부분만 언급하겠습니다. 먼저, list를 생성했을 때의 초기 모습이 다를 것입니다. [그림 12] 더미노드 없는 이중 연결 리스트 초기화 모습 list(){ head = tail = 0; bsize = 0;} 생성자 메서드 외에 차이가 있는 부분은 노드를 매다는 hang_node와 노드의 연결을 끊는 dehang_hode와 시작 iterator를 반환하는 begin, 마지막 iterator를 반환하는 end가 있습니다. hang_node 메서드에서는 보관된 자료가 ..

[자료구조와 STL] 16. list 만들기 – 더미 노드있는 이중 연결 리스트 테스트

작성한 list가 정상적으로 동작하는지 확인해 봅시다. 앞에서 얘기한 것처럼 list를 사용하는 방법은 vector와 매우 유사합니다. 단지, vector에서는 인덱스 연산을 이용할 수 있었지만 list에서는 사용하지 못하는 정도의 차이라고 보시면 됩니다. vector를 이용하여 차례대로 요소를 보관하는 프로그램이나 vecor를 이용하여 특정 키순으로 보관했던 응용 프로그램 코드에서 vector를 list로 교체하더라도 정상적으로 동작합니다. //typedef vector StuCollection;typedef list StuCollection; 이러한 이유로 우리가 만든 list가 정상적으로 동작하는지 확인하기 위해 vector에서 만든 프로젝트 조금 수정하여 테스트할 수 있습니다. 기존 프로젝트에 작..

[자료구조와 STL] 14. list 만들기 – 더미 노드있는 이중 연결 리스트

3. 1 list 만들기 – 더미 노드있는 이중 연결 리스트 먼저, 프로젝트를 만들어 앞에서 만든 파일들을 추가하는 것부터 하세요. 그리고 EHList.h를 추가합시다. EHList.h에는 템플릿 클래스인 list를 정의할 것입니다. 우리가 만들 list도 EHLIB 이름 공간 내에 정의할게요. #pragma oncenamespace EHLIB{ template class list { };}; list 클래스 내부에는 node 형식이 정의해야 합니다. 그리고 node의 멤버로는 보관할 요소와 다른 노드의 위치 정보가 있어야 할 것입니다. 여기에서는 이중 연결리스트로 만들 것이기 때문에 두 개의 링크를 캡슐화할게요. templateclass list{ struct node { node *prev; //이전..

[자료구조와 STL] 13. list (연결리스트)

3. list (연결리스트) STL에서 제공하는 선형 컨테이너에는 vector 와 list가 있는데 연결 리스트를 표현한 것입니다. 연결 리스트는 노드들의 선형 집합이며 노드는 데이터와 링크의 조합입니다. 연결 리스트는 자료를 보관할 때마다 별도의 노드를 생성하여 하나의 노드에 하나의 자료를 보관하며 노드의 링크를 통해 노드들이 서로의 위치를 선형적으로 유지하는 자료구조입니다. [그림 7] 연결 리스트 구조 연결 리스트는 링크의 개수에 따라 하나만 있는 단일(혹은 단순)연결 리스트, 두 개가 있는 이중 연결 리스트로 나눌 수 있습니다. 그리고 마지막 노드가 시작 노드의 위치 정보를 알고 있게 링크를 설정하는 연결 리스트를 원형 연결 리스트라 합니다. 이처럼 링크의 개수나 유형에 따라 연결 리스트를 구분하..

[자료구조와 STL] 12. find , find_if 만들어보기

2. 5 find , find_if 만들어보기 STL의 algorithm에서는 일반적으로 사용할 수 있는 다양한 함수들을 제공하고 있습니다. 이 중에 여기에서는 find와 find_if를 만들어 봅시다. find에서는 특정 구간 사이에 호출자가 원하는 자료가 보관된 위치를 찾는 함수입니다. 즉, 첫 번째 입력 인자와 두 번째 입력 인자는 보관된 위치가 될 수 있고 세 번째 인자가 보관된 형식과 같습니다. 또한, 컬렉션 종류에 상관없이 사용할 수 있게 만들기 위해 템플릿 형태로 만들기로 합시다. 반환 형식은 세 번째 인자와 같은 값이 보관된 위치를 반환하는 것이기 때문에 앞의 두 인자와 형식이 같겠지요. 구현은 단순히 차례대로 비교하여 같은 값이 보관된 위치를 반환하면 될 것입니다. #pragma once..

반응형