본문 바로가기

전체 글

1주차 - 답안 #include #define swap(type, x, y) do { type tmp = x; x = y; y = tmp; } while(0)//swap 함수를 정의함#define MAX_ARRAY 5 void selectionSort(int a[], int n);//입력받은 n개의 배열을 오름차순으로 선택정렬하는 함수void scanfAll(int a[], int n); //MAX_ARRAY 개의 입력받은 수로 배열을 초기화 하는 함수void printAll(int a[], int n); //MAX_ARRAY 개의 배열을 출력하는 함수 int main() {int ary[MAX_ARRAY]; scanfAll(ary, MAX_ARRAY);printAll(ary, MAX_ARRAY);//정렬 전select.. 더보기
1주차 - 윤년 && 선택정렬 선택정렬 selectionSort(ary, n) By_ pseudocode for i 더보기
Operating System-Chapter(1) 자원 관리자로서의 운영체제 -커널(kernel 또는 nucleus) : 운영체제에서 가장 빈번히 사용되는 기능들을 포함하고 있는 자원이다. 마이크로커널 구조(microkernel architecture) 마이크로커널 구조(microkernel architecture)는 주소공간, 프로레스 간 통신(IPC : interprocess comunication), 기본적인 스케줄링을 포함한 몇몇 소수의 핵심 기능만을 포함시킨다. 그 밖의 운영체제 서비스들은 서버라 불리는 프로세스에 의해 제공되는데, 이 프로세스들은 사용자 모드에서 수행되며마이크로 커널에 의해 일반 응용과 동일하게 취급된다. 이 방식을 채택하면 커널과 서버의 개발이 분리될 수 있다. 서버들은 운영체제와는 달리 특정 응용이나 수행환경의 요구 사항에.. 더보기
스레드 이진트리(Thread Binary Tree)를 위한 노드 클래스 ##뭔가 오류가 있음 #pragma once#ifndef ___ThreadedBinTree#define ___ThreadedBinTree//스레드 이진트리(Thread Binary Tree)를 위한 노드 클래스//스레드 이진 트리는 순회를 빠르게 하는 장점이 있으나 문제는 스레드를 설정하기 위하여 삽입이나 삭제 함수가 더 많은 일을 하여야 한다.#include "ThreadedBinNode.h"#include class ThreadedBinTree {ThreadedBinNode* root;public:ThreadedBinTree(): root(NULL) {}void setRoot(ThreadedBinNode* node) { root = node; }bool isEmpty() { return root = NULL; } //스레.. 더보기
스레드 이진트리(Thread Binary Tree)를 위한 노드 클래스 #pragma once#ifndef ___ThreadBinNode#define ___ThreadBinNode//스레드 이진트리(Thread Binary Tree)를 위한 노드 클래스class ThreadBinNode{int data;ThreadBinNode* left;ThreadBinNode* right;public: bool bThread;ThreadBinNode(int val,ThreadBinNode* l, ThreadBinNode* r,bool bTh) : data(val), left(l), right(r), bThread(bTh) {}int getData() { return data; }void setRight(ThreadBinNode *r) { right = r; }ThreadBinNode* g.. 더보기
DataStructure - 이진트리 이진트리 순회 방법의 선택 - 순서는 중요치 않고 노드를 전부 방문하기만 하면 된다면 전위, 중위, 후위 순회 중 어떤 것이든지 관계없다. 예를 들어, 트리의 모든 노드 값을 순서 와 상관없이 출력하기만 한다면 순회 방법은 중요하지 않다. - 자식 노드를 처리한 다음에 부모 노드를 처리해야 하는 문제라면 당연히 후위순회를 사용하여야 한다. 왜냐하면 하위 디렉터리의 용량이 계산되어야 만이 현재의 디렉터리 용량을 계산할 수 있기 때문이다. - 부모 노드를 처리한 다음에 자식 노드를 처리해야 한다면 전위 순회를 사용하여야 한다. 예를 들어, 모든 노드의 레벨을 계산하기 위해서는 전위 순회를 사용해야 한다. 루트 노드의 레벨이 1이고 어떤 노드의 레벨은 부모 노드의 레벨보다 1이 크기 때문이다. 스레드 이진트리.. 더보기
BinaryNode.h : 이진 트리를 위한 노드 클래스 #pragma once#ifndef ___BinaryNode#define ___BinaryNode//BinaryNode.h : 이진 트리를 위한 노드 클래스#include class BinaryNode{protected:int data;//트리에 저장할 데이터BinaryNode* left;//왼쪽 자식 노드의 포인터BinaryNode* right;//오른쪽 자식 노드의 포인터public:BinaryNode(int val = 0, BinaryNode* l = NULL, BinaryNode* r = NULL): data(val), left(l), right(r) {}void setData(int val) { data = val; }void setLeft(BinaryNode* l) { left = l; }vo.. 더보기
LinkedDeque.h : 연결된 덱 클래스 #pragma once#ifndef ___DbLinkedDeque#define ___DbLinkedDeque#include "DblinkedList.h"//Node 클래스 포함//LinkedDeque.h : 연결된 덱 클래스 class LinkedDeque : public DbLinkedList {public:void addFront(Node2 *n) { insert(0, n); }Node2* deleteFront() { return remove(0); }Node2* getFront() { return getEntry(0); }void addRear(Node2* n) { insert(size(), n); }Node2* deleteRear() { return remove(size() - 1); }Node2.. 더보기