본문 바로가기
반응형

전체 글508

4.SW 관련 신기술 소프트웨어 개발 보안 활동 관련 법령 및 규정HW 관련 신기술Secure OS DB 관련 신기술회복 / 병행제어교착상태 [SW 관련 신기술] 블록체인 : P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자의 디지털 장비에 분산 저장하는 기술 분산 원장 기술 : 중앙 데이터 저장소 존재 하지 않고, P2P 망 내의 참여자들에게 모든 거래 목록이 분산 저장됨. 양자 암호키 분배 : 양자 통신을 위해 비밀키를 분배하여 관리하는 기술 그레이웨어 : 악의적일 수 있는 애드웨어, 트랙웨어, 기타 악성코드 매시업: 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술. 시맨틱 웹: 컴퓨터가 사람대신 정보 읽고, 이해, 가공하여 새로운 정보 만들.. 2026. 6. 12.
3.운영체제 기본 명령어 인터넷OSI 참조모델네트워크 관련 장비TCP/IP 네트워크 관련 신기술네트워크 구축경로 제어/ 트래픽 제어 [운영체제 기본 명령어] 윈도우 기본 명령어 DIR: 현재 디렉터리의 파일 목록을 표시함.TYPE: 파일을 내용을 표시함REN: 파일의 이름을 변경함. 유닉스/리눅스 기본 명령어chmod : 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정함chown : 파일 소유자와 그룹을 변경함.fork: 새로운 프로세스를 생성함Pwd: 현재 작업중인 경로를 화면에 표시함. [인터넷] 인터넷이란 TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망이다. IP주소인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소8비트씩 4부분, 총.. 2026. 6. 12.
2.운영체제의 개념 운영체제의 종류기억장치 관리가상기억 장치 구현 기법페이지 교체 알고리즘가상기억장치 기타 관리 사항 프로세스의 개요스케줄링주요 스케줄링 알고리즘환경변수 [운영체제 개념] 컴퓨터 시스템의 자원들을 효율적으로 관리, 편리하고 효과적으로 사용할 수 있도록 환경제공 하는 여러 프로그램의 모임. 목적처리 능력 : 일정 시간 내에 시스템이 처리하는 일의 양반환시간 : 시스템에 작업을 의뢰한 시간 부터 처리가 완료될 때까지 걸린 시간사용 가능도 : 시스템을 사용할 필요가 있을 때 즉시 사용가능한 정도신뢰도 : 시스템이 주어진 문제를 정확하게 해결하는 정도. 운영체제 기능자원의 스케줄링 기능제공(자원 효율적관리)사용자와 시스템간 인터페이스 제공시스템의 각종 하드웨어와 네트워크 관리 [운영체제 종류] 윈도우 : 1.. 2026. 6. 12.
1.입력 데이터 검증 및 표현 Secure sdlc입력 데이터 검증 및 표현보안기능코드오류캡슐화암호 알고리즘 서비스 공격유형서버 인증보안 솔루션 Secure sdlc Seven touchpoints : 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론 소프트웨어 개발 보안 요소 기밀성 , 무결성, 가용성, 인증, 부인방지기밀성, 무결성, 가용성, 인증, 부인 방지 기밀성 : 인가된 사용자만 읽을 수 있음무결성. : 인가된 사용자만 수정할 수 있음가용성 : 인가받은 사용자는 언제든 사용할 수 있음 시큐어 코딩: 보안 취약점들을 최소화 하기 위해 보안 요소들을 고려하며 코딩하는 것을 의미한다.보안 취약점을 사전 대응하여 안정성과 신뢰성을 확보한다. 입력 데이터 검증 및 표현입력데이터 검증 및 표현은 입력 데이터로 인해 발생하는 문.. 2026. 6. 12.
[C언어]59일차 - 그래프 개념과 표현방법 학습내용 그래프의 개념그래프 표현 방법그래프 순회위상 정렬최소 신장 트리최단 경로 탐색 그래프의 개념 쾨니히스베르크에는 도심을 가로지르는 큰 다리가 있었음 사람들은 7개의 다리를 한 번씩만 건너서 도시 전체를 밟는 방법이 있는지 궁금했음 오일러 : 존재하지 않는다!! 오일러는 위의 육지를 정점(vertex)로 표현했고, 각 육지를 잇는 다리는 간선(edge)로 표시했음. 이렇게 하면 네개의 육지와 7개의 다리를 4개의 정점과 7개의 간선으로 나타낼 수 있음. 이제 7개의 간선들을 한 번씩만 따라 그어서 도형을 완성할 수 있는지 여부만 확인하면됨. 즉, 한붓그리기 문제가 된거임. 한붓그리기는 홀수 개의 선으로 연결된 점이 없거나 두 개인 도형에서만 가능하다. 위의 다리는 모두 홀수개의 선으로 연결되어 .. 2025. 12. 8.
[C언어]58일차 - 이중해싱 클러스터를 제대로 방지할 수 있는 방법은 탐사할 주소의 규칙성을 없애는 것뿐이다. 이중해싱해시 함수에 키를 입력하여 얻어낸 주소에서 충돌이 일어나면 새로운 주소를 향해 이동해야 한다. 이때의 이동폭을 제2의 해시 함수로 계산한다. 즉, 2개의 해시 함수를 준비해서 하나는 최초의 주소를 얻을 때, 또 다른 하나는 충돌이 일어날 때 탐사 이동폭을 얻기 위해 사용한다. 이렇게 하면 탐사 이동폭의 규칙성은 없애면서도 같은 키에 대해서는 항상 똑같은 결과를 얻을 수 있다. 키가 42인 데이터를 입력한다. 42 % 13은 3이므로 주소 3에 입력한다. 이어서 55를 입력한다. 55 % 13은 3이 지만 이미 42가 입력되어 있기 때문에 충돌이 발생한다. 그래서 Hash2 함수를 이용해서 이동폭을 얻어야 한다... 2025. 12. 5.
[C언어]57일차 - 해시 체이닝 체이닝 체이닝이란 해시 함수가 서로 다른 키(key)에 대해 같은 주소 값을 반환해서 충돌이 발생하면 각 데이터를 해당 주소에 있는 링크드 리스트에 삽입하여 문제를 해결하는 기법을 말한다. 체이닝이라는 이름은 충돌이 일어날 때마다 데이터를 링크드 리스트에 사슬 처럼 주렁주렁 엮는다는 의미에서 붙여졌다. 아래 그림은 체이닝 기반 해시 테이블은 데이터 대신 링크드 리스트에 대한 포인터를 관리한다. 즉, 해시 함수가 만들어 낸 주소값을 데이터가 직접 사용하지 않고, 링크드 리스트가 사용한다. 삽입 연산은 앞으로 발생할 충돌을 고려해서 설계되어야 한다. 삭제 연산과 탐색 연산은 이미 발생한 충돌을 고려해서 설계되어야 한다. 탐색연산탐색 연산은 앞으로 발생할 충돌을 고려해서 설계되어야 한다. 즉, 체이닝 기.. 2025. 12. 4.
[C언어]56일차- 해시 테이블 해시테이블은 이진 탐색보다 훨씬 빠른 성능을 자랑하지만, 그만큼 더 많은 메모리를 요구한다. 해시는 해시 테이블뿐 아니라 문자열 탐색, 암호화 등 다른 알고리즘에 많이 응용되는 알고리즘이다. 학습목표- 해시의 개념을 이해한다.- 해시 테이블의 개념과 구현을 이해한다.- 해시 함수의 개념과 구현을 이해한다.- 해시 테이블의 주소 충돌 해결 방법을 이해한다. 해시의 영어뜻은 "잘게 자른 고기를 양파나 감자와 같은 다른 재료와 함께 튀겨 한 덩어리로 만든요리" 이다. 즉, 해시는 데이터를 입력 받아 완전히 다른 모습의 데이터로 바꾸는 작업이다. 1.해시 테이블 : 해시 테이블은 데이터의 해시값을 테이블 내 주소로 이용하는 궁극의 탐색 알고리즘이다. 2.암호화 : 해싱은 원본 데이터를 다른 모습으로 바꿔놓는다.. 2025. 12. 3.
[C언어]54 - 55일차- 힙 자료구조 (이것이 c 자료구조와 알고리즘이다) 우선순위 큐우선순위 큐는 우선순위 속성을 갖는 데이터의 삽입과 제거 연산을 지원하는 ADT 이다.보통 큐는 먼저 들어온 요소가 무조건 먼저 나오게 하지만, 우선순위 큐는 새 요소에 우선순위를 부여해서 큐에 삽입하고 가장 높은 우선순위를 가진 요소부터 빠져나오게 한다.숫자 20을 삽입한다면?일반적인 큐였다면 20은 117 뒤에 추가되었을 것이다.하지만 이 큐는 우선순위 큐이기 때문에 17과 22 사이에 새요소가 삽입된다.지금은 새요소가 삽입되어야 할 위치를 순차 탐색으로 찾았다.아래에서 다른 방법(힙)을 사용해서 탐색하는 방법을 알아본다.제거는 제일 앞에 있는 요소를 제거해주면된다.힙은 우선순위 큐를 구현하기 위해 사용되는 자료구조다.힙은 힙 순서 속성을 만족하는 완전 이진 트리이다.완전 이진 트리는 최고.. 2025. 11. 27.
[C언어]53일차-이진트리 노드삽입 삭제 (이것이 c 자료구조와 알고리즘이다) [C언어]53일차-이진트리 노드삽입 삭제 (이것이 c 자료구조와 알고리즘이다) 노드 삽입 연산의 핵심은 새 노드가 삽입될 곳이 어디인지를 찾아 내는 일이다. 다시 말해, 새 노드가 삽입될 곳을 이진 탐색으로 찾아내야 한다. 이진 탐색으로 새 노드를 연결할 부모 노드를 찾아낸 후 그곳에 노드를 살포시 내려놓으면 된다. 숫자 14를 아래 이진 트리에 삽입해 보기 14는 23보다 작으므로 23의 왼쪽 트리에 위치해야 한다. 그리고 11보다 크므로 11의 오른쪽 하위 트리에 위치 해야 한다. 마침 11의 오른쪽 자식 트리가 없으니 여기에 새 노드 14를 연결하면 된다. 노드 삭제 연산 노드 삭제를 할때는 2가지 케이스가 있다. [케이스 1] 이진 탐색 트리에서 임의의 노드를 삭제하려면 먼저 삭제할 노드를 찾.. 2025. 11. 26.
[C언어]52일차-이진탐색과 이진탐색트리 (이것이 c 자료구조와 알고리즘이다) 이진탐색이진탐색 트리 이진 탐색은 정렬된 데이터에서 사용할 수 있는 '고속' 탐색 알고리즘이다. 이진 탐색의 핵심은 탐색 범위를 1/2씩 줄여나가는 방식에 있다. 이진 탐색을 수행하는 과정은 아래와 같다. 1.데이터 중앙에 있는 요소를 고른다. 2.중앙 요소값과 찾고자 하는 목표값을 비교한다. 3.목표값이 중앙요소값보다 작다면 중앙을 기준으로 데이터 왼편에 대해, 크다면 오른편에 대해 이진 탐색을 새로 수행한다. 4.찾고자 하는 값을 찾을 때까지 1 ~ 3 단계를 반복한다. 아래 배열에서 67을 찾는다고 가정하자. 원래 데이터의 왼편을 탐색 대상에서 제외하고 오른편에서 다시 중앙 요소를 골라 비교한다. 다시 탐색 대상에서 제외된 요소들을 빼면 23과 67 둘만 남는다. 여기서 중앙 요소를 선택하.. 2025. 11. 25.
[C언어]51일차 - 순차탐색 (이것이 c 자료구조와 알고리즘이다) 1.탐색의 개념2.순차탐색3.이진탐색4.이진탐색 트리5.레드 블랙 트리 탐색 알고리즘을 배우면? 1.단 10번의 출력문 삽입으로 1,000줄짜리 함수에서 변수를 잘못 조작하는 코드 1줄을 찾을 수 있다. 2.수천 페이지나 되는 영어사전에서 원하는 단어를 1분안에 찾을 수 있다. 3.상대방이 마음속으로 생각하는 1 ~ 2,000 사이의 임의 숫자를 11번의 질문 내로 맞춰서 상대방을 놀라게 할 수 있다. 순차 탐색을 살펴보고, 이진 탐색을 살펴본다. 이진 탐색은 빠르지만 모든 자료구조에서 사용할 수 있는 것은 아니다. 각 요소가 메모리에 순차적으로 적재되어 있어 그 주소를 바로 계산할 수 있는 배열에서 사용가능하다. 이를 위해 이진 탐색 트리나 레드 블랙 트리를 이어서 살펴 본다. 이진탐색 트리는 데이터의.. 2025. 11. 24.
동적 메모리 할당 및 해제 동적 메모리 할당 및 해제 정적 메모리 할당의 한계 보통 프로세스 안에서 지역 변수가 저장되는 기본 스택(stack) 메모리 크기는 1Mbyte 이다. 따라서 함수를 호출할 때 지역 변수가 할당되는 메모리 공간은 최대 1Mbyte를 넘을 수 없다. 예를 들어 아래와 같이 배열을 선언하면 1Mbyte 가 할당되기 때문에 오류가 발생한다. 하지만 프로그램에서 사용하는 데이터는 당연히 1Mbyte 보다 훨씬 더 큰 경우가 많다. 예를 들어 우리가 보고 있는 스마트폰이나 모니터에 출력된 한 점(pixel)의 데이터가 보통 4바이트 크기이다. 이런 픽셀들의 모임인 full-hd 영상 한장을 저장하려면 1920 * 1080 * 4 바이트 , 대략 7Mbyte 정도의 크기가 필요하다. 결국 프로세스 안의 기본 스.. 2025. 11. 21.
[C언어]50일차 - 분리집합 트리(이것이 c 자료구조와 알고리즘이다) 분리집합은 서로 공통된 원소를 갖지 않는, 즉 교집합을 갖지 않는 복수의 집합을 뜻한다. 그래서 분리 집합의 개념은 2개 이상의 집합을 일컬을 때만 사용할 수 있다. 아래는 분리 집합의 예이다. 분리 집합에는 교집합이 있을 수 없다. 분리 집합에는 합집합만 있을 뿐이다. 위의 내용을 어디에 사용할 수 있나? 아래와 같은 도서 판매 관리 프로그램을 만들었다. 그리고 책의 정보는 아래와 같은 자료구조로 정의 했다. 상황) 사장이 가게 홍보를 위해 일주일간 베스트 셀러만 책 가격을 할인하기로 함. 행사는 임시적이기 때문에 BookPrice 구조체의 Price 값을 바꿔서는 안된다. 구조체에 베스트셀러임을 나타내는 필드를 추가하는 일은 프로그램의 다른 부분에 부작용을 미칠 수 있어서 안된다. 이때, 분리.. 2025. 11. 21.
메모리 할당 1.프로세스와 메모리 할당2.지역 변수와 스택 3.동적 메모리 할당 및 해제4.동적 메모리 사용하기 1.프로세스와 메모리 할당 프로그램 : c언어로 작성한 소스파일은 컴파일 작업과 링크작업을 거쳐서 기계어로 이루어진 실행파일(exe)이 된다. CPU는 실행파일의 명령어를 실행할 수 없음! 프로세스(실행중인 프로그램) : 운영체제가 실행파일의 명령어를 읽어서 메모리에 재구성하게 된다. 코드 세그먼트 : 실팽파일 -> 프로세스가 될때 기계어들은 코드 세그먼트에 복사되어 프로그램 실행에 사용됨.데이터 세그먼트 : 프로그램이 시작해서 끝날 때까지 계속 사용되는 데이터스택 세그먼트 : 프로그램 실행 중에 필요한 임시 데이터를 저장하는 데 사용하는 메모리 영역이다. 함수가 호출될 때 함수 안에 선언한 지.. 2025. 11. 20.
[C언어]49일차 - 수식트리 (이것이 c 자료구조와 알고리즘이다) 수식 트리는 이름 처럼 수식을 표현하는 이진 트리이다. 두가지 규칙이 있다. 1.피연산자는 잎 노드이다.2.연산자는 뿌리 노드 또는 가지노드이다. 피연산자 1, 2, 7, 8은 모두 잎 노드. 연산자들은 모두 뿌리 노드이거나 가지 노드이다. 뿌리 노드와 가지 노드 모두 피연산자를 양쪽 자식으로 가진다. 여기에서 피연산자는 수 일 수도 있고, 다른 식일 수도 있다. 이처럼 수식 트리는 가장 아래에 있는 하위 수식 트리(잎 노드)로 부터 수 또는 계산 결괏값을 병합해 올라가는 과정을 반복하며 계산을 수행한다. 이러한 수식 트리의 성질에 적합한 노드 순회 방법은 후위 순회이다. 후위 순회는 왼쪽 하위트리 -> 오른쪽 하위트리 -> 뿌리 노드 순으로 순회하기 때문이다. 수식 트리 구축 방법 1.수식을.. 2025. 11. 20.
[C언어]48일차 - 배열과 포인터 1.배열과 포인터 표기법2.배열 시작 주소3.배열을 사용하는 포인터4.배열과 포인터의 합체 1.배열과 포인터 표기법 포인터는 포인터 변수가 가리키는 메모리의 시작 주소를 기준으로 삼고, 배열도 해당 배열이 사용하는 메모리 그룹의 시작 주소를 기준으로 삼는다. 따라서 두 문법은 표기만 다를 뿐 문법 구조는 비슷하다. 배열 표기법의 한계 위와 같이 선언한 배열에서 data[0] 요소는 총 4바이트로 구성되어 있다. 그런데 첫번째 바이트에 있는 값 0x78을 0x22로 변경하고 싶어서 배열 표기법으로 data[0]에 0x22를 대입하면 어떻게 될까? 배열 표기법으로 data[0] 이라고 적으면 4바이트 크기의 메모리를 의미하기 때문에 0x22를 대입한다고 해서 data[0]의 일부 값만 변경되는 것.. 2025. 11. 19.
[C언어]47일차 - 재귀함수 정리 - feat.호출스택 하나의 문제를 기본 단계와 재귀 단계로 나누는 방법을 배운다. 분할정복 전략은 이런 간단한 개념을 사용하여 어려운 문제를 푸는 방법이다. 1.예제 코드를 직접 실행해보기2.연필과 종이로 재귀 함수가 어떻게 실행되는지 그대로 따라가 보기. "프로그램에 반복문을 사용하면 프로그램의 성능을 향상시킬 수 있지만, 재귀를 사용하면 프로그래머의 능력을 향상시킬 수 있다." 재귀함수에서 제일 중요한 것! 재귀 함수가 언제 멈출지 알려줘야 한다. 그래서 모든 재귀 함수는 기본 단계와 재귀 단계라는 두 부분으로 나누어져 있다. 재귀 단계 : 함수가 자기 자신을 호출 하는 부분. 기본 단계 : 함수가 자기 자신을 다시 호출하지 않는 경우.(즉, 무한 반복으로 빠져들지 않게 하는 부분) #include void count.. 2025. 11. 17.
[C언어]46일차 - 2진트리 (이것이 c언어 자료구조 알고리즘이다) 이전 포스팅에서는 왼쪽자식 - 오른쪽 형제 표현법을 이용하여 하나의 노드가 N개의 자식 노드를 가질 수 있는 트리를 구현 했다. 이번 포스팅에서는 트리에서 하나의 노드가 자식 노드를 2개까지만 가질 수 있는 이진 트리를 알아본다. 이진트리 자료구조를 이용한 수식 이진 트리와 아주 빠른 데이터 검색을 가능하게 하는 이진 탐색 트리 알고리즘이 있다. 이진 트리의 종류 이진 트리의 가장 중요한 특징은 노드의 최대 차수가 2라는 사실이다.즉, 모든 이진 트리 노드의 자식 노드 수는 0, 1, 2 중 하나다. 잎노드를 제외한 모든 노드가 자식을 둘씩 가진 이진 트리를 포화 이진 트리라고 한다. 포화 이진 트리는 잎 노드들이 모두 같은 깊이에 위치한다는 특징을 가진다. 포화 이진 트리와 비슷하지만 포화 이진 .. 2025. 11. 17.
[C언어]46일차 - 트리 (이것이 c언어 자료구조 알고리즘이다) 학습 개념1.트리의 개념 이해하기2.트리를 표현하는 여러가지 방식 이해하기 3.이진트리의 개념과 구현 이해하기4.수식 트리의 개념과 구현 이해하기5.분리집합의 개념과 구현 이해하기 트리의 개념트리 구조는 컴퓨터 과학에서도 활용도가 매우 높다. 운영체제의 파일 시스템이 트리 구조로 이루어져 있고, HTML이나 XML 문서를 다룰 때 사용하는 DOM도 트리 구조로 이루어져 있다.또한 검색 엔진이나 데이터베이스도 트리 자료구조에 기반해서 구현된다. *검색 엔진이나 데이터베이스에 사용되는 트리 자료구조를 탐색 트리라고 한다. 트리의 구성요소트리는 뿌리, 가지, 잎 세가지 요소로 이루어져 있습니다. 뿌리는 트리 자료구조의 가장 위에 있는 노드를 가리킨다.가지는 뿌리와 잎 사이에 있는 모든 노드를 일컫는다... 2025. 11. 14.
[C언어]45일차 - 링크드 큐 PPT 정리 [C언어]45일차 - 링크드 큐 PPT 정리 구현코드#include #include #include #define ElementType inttypedef struct _Node{ char* data; struct _Node* next;} Node;typedef struct _LinkedQueue{ Node* Front; Node* Rear; int count;} LinkedQueue;void createQueue(LinkedQueue** queue);void destroyQueue(LinkedQueue* queue);Node* createNode(char* data);void destroyNode(Node* _node);void enQueue(LinkedQueue* que.. 2025. 11. 14.
[C언어]44일차 - 순환큐 PPT 정리 [C언어]44일차 - 순환큐 PPT 정리 2025. 11. 13.
[C언어]44일차 - 순환큐 (이것이 C언어 자료구조&알고리즘) [C언어]44일차 - 순환큐 (이것이 C언어 자료구조&알고리즘) 큐의 개념큐의 삽입과 제거순환 큐의 구조와 구현링크드 큐의 구조와 구현 큐의 개념큐는 입력과 출력 창구가 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나오는 ADT 입니다. 큐의 삽입과 제거큐의 가장 앞 요소를 전단이라고 하고, 가장 마지막 요소를 후단이라고 부릅니다. 삽입은 아래와 같이 후단에 노드를 덧붙여서 새로운 후단을 만드는 연산이다. 제거는 다음과 같이 전단의 노드를 없애서 전단 뒤에 있는 노드를 새로운 전단으로 만드는 연산을 말한다. 기존 큐의 문제점 기존 큐의 문제점은 전단의 데이터를 제거하면 뒤쪽의 데이터를 앞으로 한칸씩 이동 시켜야 된다는 점이다. 해결책으로는 전단을 가리키는 변수를 하나 만들어서 배열의.. 2025. 11. 12.
[C언어]43일차 - 스택 - 링크드 리스트 PPT 정리 2025. 11. 12.
[C언어]42일차 - 스택 - 배열 PPT 정리 [C언어]42일차 - 스택 - 배열 PPT 정리 2025. 11. 11.
[C언어]42일차-스택 링크드 리스트로 구현해보기(이것이 C언어 자료구조 알고리즘이다) [C언어]42일차 - 스택 - 링크드 리스트로 구현해보기 #include #include #include /* 링크드 리스트로 구현한 스택은 배열과 달리 인덱스를 활용해서 노드에 접근할 수 없다. 따라서 링크드 리스트로 스택을 구현하려면 노드는 자신의 위에 위치하는 노드에 대한 포인터를 갖고 있어야 한다. */typedef struct _Node{ //int나 double 같은 기본 자료형이라면 '값복사'를 통해 데이터를 담는다. char* Data; //char* 형은 포인터이기 때문에 문자열이 저장된 주소만 담을 수 있다. struct _Node *NextNode; //자기 위에 쌓여 있는 노드의 주소를 가리킨다.} Node;typedef struct.. 2025. 11. 11.
[C언어]42일차 - 스택 - 배열로 구현해보기 (이것이 C언어 자료구조 알고리즘이다.) [C언어]42일차 - 스택 - 배열로 구현해보기 #include #include #include #define ElementType inttypedef struct _Node{ ElementType Data;} Node;typedef struct _Stack{ int capacity; //용량 int top; //최상위 노드의 위치 Node *nodes; //노드 배열 (힙에할당된 첫번째 요소를 가리킨다.)}Stack;void createStack(Stack** stack, int capacity);void destroyStack(Stack* stack);void push(Stack* stack , ElementType Data);Eleme.. 2025. 11. 11.
[C언어]41일차 - 스택 (이것이 C언어 자료구조 알고리즘이다.) [C언어]41일차 - 스택 (이것이 C언어 자료구조 알고리즘이다.) 1.스택의 개념2.노드 삽입과 제거 연산3.배열 기반 스택 구현4.링크드 리스트 기반 스택 구현5.스택 기반 계산기 구현 스택의 개념 스택에서 데이터 입/출력은 오로지 스택의 꼭대기에서만 이루어진다.스택 가운데에 있는 데이터를 삭제하거나 새로운 데이터를 입력하는 일은 허용되지 않는다. -> 가장 마지막에 들어간 데이터가 제일 먼저 나오고, 가장 먼저 들어간 데이터는 가장 나중에 나온다. -> 요소의 삽입과 삭제가 한쪽 끝에서만 이루어지는 것. 사용하는곳)자동 메모리 , 컴파일러의 구문분석기, 네트워크 프로토콜, 이미지 편집 프로그램의 되돌리기 스택의 핵심 기능: 삽입과 제거 연산 스택 ADT의 주요기능은 삽입과 제거 연산 두가지다. .. 2025. 11. 10.
[C언어]40일차 - 더블링크드 리스트 설명 PPT 2025. 11. 7.
[C언어]40일차 - 이중포인터 설명 PPT 2025. 11. 7.
반응형