목록기본개념 (29)
VioletaBabel
& = and| = or^ = xor (비트가 달라야 1)~ = not> = ÷ --x^0 = xx^1 = ~xx^x = 0 x&0 = 0x&1 = xx&x = x x|0 = xx|1 = 1x|x = x x+x = x*x = x
트리는 사이클이 없는 연결 그래프이다. 그래프는 노드와 노드를 연결하는 간선을 하나로 모은 것이다. 사이클이 없는 그래프를 비순환 그래프라고 한다. 모든 정점 간에 경로가 존재하는 그래프를 연결 그래프라고 한다. --인접 리스트 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#include #include using namespace std;struct node{ node *next, *prev; int num;}; node *head[9], *foot; void init(..
트리 트리는 그래프의 일종. 허나 사이클이 없다. 트리는 하나의 루트 노드를 가진다.루트 노드는 0개 이상의 자식 노드를 가지고 있다.자식 노드는 0개 이상의 자식 노드를 가지고 있다. 이는 반복된다. --이진 트리는 각 노드가 최대 둘의 자식을 가지는 트리이다. 이진 탐색 트리는 왼쪽 자식들 left = new node; root->right = new node; root->left->left = new node; root->left->right = new node; root->right->left = new node; root->right->right = new node; root->left->left->left = leaf; root->left->left->right = leaf; root->lef..
FIFO.프린터처럼 먼저 들어간 종이가 먼저 나옴. --배열로 구현 123456789101112131415161718192021#include int main(){ int num[100], count = 0; char command; int comnum; while (1) { printf("입력 - i / 삭제 - d\n : "); scanf("%c", &command); if (command == 'i') { printf("입력할 자연수 : "); scanf("%d", &comnum); num[count++] = comnum; } else if (command == 'd' && count > 0) printf("%d\n", num[--count]); while (getchar() != '\n'); }}..
LIFO에 따라 자료를 배열.프링글스같은 느낌임(공장에서 가장 마지막에 넣은 과자를 우린 가장 먼저 쳐먹지) ---배열 이용 123456789101112131415161718192021#include int main(){ int num[100], count = 0; char command; int comnum; while (1) { printf("입력 - i / 삭제 - d\n : "); scanf("%c", &command); if (command == 'i') { printf("입력할 자연수 : "); scanf("%d", &comnum); num[count++] = comnum; } else if (command == 'd' && count > 0) printf("%d\n", num[--count]..
연결된 노드를 표현해주는 자료구조.각 노드는 이전 노드와 다음 노드를 가리킨다.장점은 시작이나 끝 지점에 아이템을 추가, 삭제 시 O(1)에 가능함.다만 특정 인덱스는 상수 시간에 접근할 수 없음(시작이나 끝 지점부터 타고타고 넘어가야 함.) --양방향 예제 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201..
key를 value에 대응시키는 자료구조. 연결 리스트와 해시 코드 함수를 이용하면 간단하게 구현할 수 있음. 키와 값을 해시테이블에 넣는 과정1. 키의 해시 코드 계산. (키는 보통 int, long. 키는 무한하나 int는 유한하기 때문에 서로 다른 키가 해시코드를 가리킬 수 있음)2. hash(key)%array_length와 같은 방식으로 해시 코드를 이용해 배열의 인덱스를 구함(같은 인덱스를 가리킬 수도 있음)3. 배열의 각 인덱스에 키와 값으로 이루어진 연결리스트가 존재. 키와 값을 해당 인덱스에 저장(충돌을 대비해 연결리스트 이용). 충돌이 많은 최악의 경우는 O(N) [N은 키의 갯수]잘 구현된 경우엔 O(1) ----- 문자열(키)을 정숫값(해시 코드)로 치환해 문제를 해결하는 방법은 주..
#길벗 #IT #리뷰C# 코딩의 기술 : 똑똑하게 코딩하는 법 - 기본편 한 가지 주의해야 할 점이 있다면 이 책은 이제 막 입문하는 사람을 위한 기본 개념서는 아닙니다. 만약 나는 아직 C#을 전혀 알지 못한다 하는 경우에는 이 책을 보시는 것을 추천하지 않습니다.제가 이 책을 접했을 때만 보더라도 저는 C#을 이제 막 제대로 공부하기 시작하려던 터라 책에서 무슨 말을 하는지 이해할 수 없었습니다. 다만 개념을 한 번 정독한 후 이 책을 다시 보신다면 어떤 방식으로 코딩을 해야 좋은 코드를 짤 수 있을지를 이해하기에 상당히 유용할 것이라 생각됩니다. 아마 저처럼 이제 막 개념을 한 번 정주행하신 분이 계시다면 'C# 코딩의 기술'은 무척 유용할 것이라 장담할 수 있습니다. 책은 '언어 사양 문제', '..
http://www.csharpstudy.com/ 확장자 .cs헤더파일 없음 namespace 네임스페이스명{Class 클래스명{static void Main(string[] args){System.Console.WriteLine("Hello World"); // Line을 지우면 줄바꿈x}}} =========================자료형은 long long 대신 long.object는 모든 타입 포함.int 등 일부 타입들은 null값을 가질 수 없는데int? 라는 식의 ?를 붙인 자료형으로 null을 줄 수 있음.int?를 int? j = 10;int로 바꾸려면 int k = j.Value;하면 됨 ===========================배열 선언 string[] a = new str..