본문 바로가기

학교 공부10

해시테이블 구현 / 이중 해싱 // 이 코드는 해시 테이블을 이중 해싱(Double Hashing)을 사용하여 구현한 프로그램입니다. // 이중 해싱은 충돌이 발생했을 때 보조 해시 함수(hh)를 사용하여 새로운 위치를 계산합니다. // 주요 기능: // 1. 'i': 원소 삽입 - 기본 해시 함수와 보조 해시 함수를 사용하여 데이터를 삽입합니다. //    - 충돌이 발생하면 보조 해시를 활용해 새로운 위치를 탐색하며, 충돌 횟수를 출력합니다. // 2. 's': 원소 검색 - 기본 해시 값을 기준으로 값을 탐색하고, 해당 값이 저장된 인덱스를 반환합니다. // 3. 'p': 해시 테이블 출력 - 해시 테이블의 모든 슬롯 값을 출력합니다. // 4. 'e': 프로그램 종료 - 해시 테이블을 출력하고 종료합니다. // 기본 해시 함수.. 2025. 1. 9.
해시테이블 구현 / 선형 조사법 // 이 코드는 해시 테이블을 선형 조사법(Linear Probing)을 사용하여 구현한 프로그램입니다. // 해싱은 해시 함수로부터 계산된 인덱스에 데이터를 삽입하며, 충돌이 발생할 경우 선형 탐색으로 해결합니다. // 주요 기능: // 1. 'i': 원소 삽입 - 해시 값에 따라 데이터를 저장하며 충돌 시 빈 슬롯을 탐색하여 저장합니다. // 2. 's': 원소 검색 - 해시 값에 따라 데이터 위치를 검색하며 충돌 시 다음 슬롯을 탐색하여 확인합니다. // 3. 'p': 해시 테이블 출력 - 해시 테이블의 모든 슬롯 값을 출력합니다. // 해시 함수는 모듈러 연산(x % M)을 사용하여 데이터를 삽입할 초기 인덱스를 계산합니다.#define _CRT_SECURE_NO_WARNINGS#include #.. 2025. 1. 9.
해시테이블 구현 / 체이닝 방식 // 이 코드는 해시 테이블을 구현한 프로그램입니다. // 해시 테이블의 노드들은 연결 리스트로 구성되며, 충돌 해결은 체이닝 방식으로 처리됩니다. // 제공되는 기능: // 1. 'i': 원소 삽입 - 해시 값을 계산하여 연결 리스트의 맨 앞에 노드를 추가합니다. // 2. 's': 원소 검색 - 주어진 값을 가진 노드를 검색하고, 발견되면 그 위치를 반환합니다. // 3. 'd': 원소 삭제 - 주어진 값을 가진 노드를 찾아 삭제하고 성공 여부를 반환합니다. // 4. 'p': 해시 테이블 출력 - 각 슬롯의 연결 리스트에 저장된 모든 원소를 출력합니다. // 해시 함수는 모듈러 연산을 사용하여 입력값을 해시 테이블 크기로 나눈 나머지를 반환합니다. 1차해싱 // 이 코드는 해시 테이블을 구현한 프로.. 2025. 1. 9.
Laplace transform https://youtu.be/yO3vj5vPHZw?si=1bx5GAdNzzQihU1I https://youtu.be/lQuUkhAg_rc?si=a1f6wt56-UfeEapK 위의 영상을 참고하였음을 밝힙니다..!Laplace transform라플라스 변환과 기본 공식라플라스 변환은 시간 영역에서 주어진 함수 \( f(t) \)를 주파수 영역의 함수 \( F(s) \)로 변환하는 도구입니다. 기본 공식은 다음과 같습니다:\[L\{f(t)\} = \int_0^\infty e^{-st} f(t) \, dt = F(s)\]다음은 몇 가지 기본적인 라플라스 변환 공식입니다:\[\begin{array}{|c|c|}\hlinef(t) & F(s) \\\hline1 & \frac{1}{s} \\t & \frac{1}.. 2024. 10. 6.
Second Order ODEs https://youtu.be/WA6E0KLzclo?si=qx7q16nHW8XXgEl4 https://youtu.be/IOfXw3zwKN8?si=EjEDoVA38Uxvi2o3https://youtu.be/uddqIHEv5G4?si=bRZjL4lmUGbUqvL9https://youtu.be/MDXctbk_t50?si=ARaZfFeuGLal2rlN 위의 영상을 참고하였음을 밝힙니다..!2계 ODE  2계 ODE - 공식계수내림 (하나의 해가 주어진 경우)2계 ODE - 상수계수2계 ODE - 미정계수법2계 ODE - 매개변수법 2024. 9. 22.
공업수학 - First Order ODEs https://youtu.be/rKiBSJ6a4mY?si=IBiA2UN8o3yXtbGrhttps://youtu.be/eQKd-e4lFkI?si=QKS7fuZfiI1N8u7y  위의 영상을 참고하였음을 밝힙니다..!1계 ODE - 변수분리개념 정리1계 미분방정식을 풀 때, 가장 기본적인 방법 중 하나는 변수분리이다.변수분리 단계주어진 미분방정식을 아래의 형태로 쓴다. \[\frac{dy}{dx} = y'\]$ x $는 $ x $끼리, $ y $는 $ y $끼리 정리한다.양 변을 각각 적분하여 일반 해를 구한다.예시\[ y' = y \]이 방정식을 변수분리법으로 풀어보면\[\frac{1}{y} dy = dx\]양 변을 적분\[\int \frac{1}{y} dy = \int dx\]적분 결과\[\ln|y| =.. 2024. 9. 15.
[자료구조] 연결 이진트리 구현 연결 이진트리 구현TreeNodemake (id, s, TreeNode* tree): 이 함수는 새로운 노드를 동적 할당하고, 트리의 왼쪽 또는 오른쪽 자식 노드로 추가합니다. s 값에 따라 'L'이면 왼쪽 자식, 'R'이면 오른쪽 자식에 추가됩니다.leftChild (TreeNode* v)와 rightChild (TreeNode* v): 각각 트리에서 특정 노드의 왼쪽 자식과 오른쪽 자식을 반환하는 함수입니다.TreeBuild (TreeNode* root, int n): 이 함수는 트리의 루트를 기준으로 나머지 노드들을 입력받아 트리를 완성합니다. 입력받은 각 노드에 대해 왼쪽 자식과 오른쪽 자식 노드를 추가해줍니다.findID (TreeNode* v, int id): 이 함수는 재귀적으로 트리의 노드.. 2024. 9. 6.
[자료구조] 영문자 리스트 ADT 영문자 리스트 ADT 구현이중 연결 리스트 사용! add (r 위치에 e를 갖는 노드 추가하기):리스트의 r번째 위치에 값 e를 갖는 노드를 추가합니다.위치가 잘못되면 "invalid position"을 출력해야 합니다.이중 연결 리스트이기 때문에 노드가 추가될 때 이전 노드와 다음 노드의 연결을 적절히 갱신해야 합니다.delete (r 위치에 있는 노드 제거하기):리스트의 r번째 위치에 있는 노드를 제거합니다.삭제할 위치가 잘못되면 "invalid position"을 출력해야 합니다.삭제 시, 삭제된 노드의 이전과 다음 노드를 서로 연결해야 합니다.get (r 위치에 있는 노드의 값 출력):리스트의 r번째 위치에 있는 노드의 값을 출력합니다.위치가 잘못되면 "invalid position"을 출력해야 .. 2024. 9. 4.
[자료구조] 리스트 ADT 오늘은 리스트 ADT를 다룰 예정이다.리스트 ADT리스트 ADT는 데이터 구조의 한 유형으로, 연속적인 임의의 개체들을 모델링하는 데 사용됩니다.  이는 리스트가 순서가 있는 데이터 항목들의 집합을 나타낸다는 것을 의미합니다.  리스트 ADT는 다음과 같은 특징을 가집니다:연속적인 임의의 개체들:리스트는 여러 개의 요소(element)를 일렬로 나열한 구조입니다. 각 요소는 고유한 위치(인덱스 또는 순위)로 접근할 수 있습니다. 원소에 대한 접근 도구:리스트 ADT는 각 원소에 쉽게 접근할 수 있도록 다양한 연산을 제공합니다. 예를 들어, 리스트에서 특정 위치(순위)에 있는 원소를 가져오거나, 새로운 원소를 특정 위치에 삽입하거나, 기존 원소를 삭제할 수 있습니다. 순위(rank):리스트의 각 원소는 순.. 2024. 9. 4.