본문 바로가기

반응형

개발(합니다)/컴퓨터 일반&CS

(25)
[자료구조]스택(Stack) 스택이란선입후출(First-In-Last-Out) 형태의 자료 구조.스택은 더미라는 의미로 건초 더미를 쌓아 올린 형태를 가진 자료 구조.상자를 차곡 차곡 쌓아올린 형태로 가장 위에 상자를 치워야 아래 상자를 꺼낼 수 있는 구조. 삽입과 제거가 주요입니다. 스택은 배열과 링크드 리스트로 구현 할 수 있습니다. 배열 형태의 스택 / 링크드 리스트 형태의 스택 C 소스Array StackArrayStack.h/* * array_stack.h * * Created on: 2018. 12. 31. * Author: otrodevym */ #ifndef ARRAY_STACK_H_#define ARRAY_STACK_H_#define NULL (void *)0 #include #include typedef int E..
[연산자표기법]전위 표기법, 중위 표기법, 후위 표기법 연산자 +, -, *, /, %(나머지), () 괄호 등 사칙연산에 사용 되는 기호 연산 대상 및 숫자1,2,3,4,5,6,7,8,9,10 과 같은 실수 중위 표기법일반적으로 일상 생활이나 수학에서 사용하는 표기법ex)(1 + 2) * (3 + 4) 전위 표기법연산자를 먼저 표시하고 연산 대상을 뒤에 표시하는 표기법 연산 대상 앞에 작성 되는 표기법ex)* + 1 2 + 3 4 후위 표기법연산 대상을 먼저 표시하고 연산자를 뒤에 표시하는 표기법연산 대상 뒤에 작성 되는 표기법ex)1 2 + 3 4 + * 스택으로 사칙 연산을 하기 위한 아이디어스택에 연산자를 저장표기법에 숫자를 저장 닫힘 괄호 ) 를 만나면 스택에 있는 연산자를 모두 출력합니다.단 괄호는 출력하지 않습니다.
[자료구조] 환형 링크드 리스트(Circular Linked List) 환형 링크드 리스트란원 형태의 자료구조.환형 더블 링크드 리스트로써 더블 링크드 리스트를 업그레이드 한 자료구조.헤드와 테일이 연결 된 구조. 리스트 세계의 우로보로스라는 전설속 뱀을 뜻하기도 한답니다. 테일이 없이 계속 이어져 있다고 생각하면 됩니다. C 소스CircularLinkedList.h/* * CirtularLinkedList.h * * Created on: 2018. 12. 30. * Author: otrodevym */ #ifndef CIRTULARLINKEDLIST_H_#define CIRTULARLINKEDLIST_H_#define NULL (void *)0 #include #include typedef int ElementType; typedef struct tagNode{ Eleme..
[자료구조]더블 링크드 리스트(Doubly Linked List) 더블 링크드 리스트란싱글 링크드 리스트를 개선한 자료구조.싱글 링크드 리스트는 단방향 자료구조이고 더블 링크드 리스트는 양방향 자료구조.헤드에서 테일 방향과 테일에서 헤드 방향으로 찾는 자료 구조입니다.싱글 링크드 리스트와 다른 점은 이전 노드에 대한 포인터가 생겼다는 차이뿐입니다. 살펴 보기 C 소스DoublyLinkedList.h/* * DoublyLinkedList.h * * Created on: 2018. 12. 30. * Author: otrodevym */ #ifndef DOUBLYLINKEDLIST_H_#define DOUBLYLINKEDLIST_H_#define NULL (void *)0 #include #include typedef int ElementType; typedef struct..
[자료구조]싱글 링크드 리스트(Linked List) Linked List란배열의 단점을 해결하고자 만든 자료 구조.몇개의 배열을 선언 할지 알 수 없기때문에 이를 해결하기 위한 자료 구조. 고리와 고리를 연결한 형태로 나의 다음번째가 누구인지 알고 있는 데이터 구조입니다. 헤드에서 테일 방향으로 찾는 자료 구조입니다. 비엔나 소세지 같은 구조입니다. 살펴보기링크드 리스트라는 개념 안에는 노드, 헤드 ,테일이 있습니다. 노드란 데이터와 다음을 가르치는 정보를 가지고 있는 단위를 노드라고 합니다. 헤드란줄을 설 때 어디가 첫 번째인지 알아야 순서를 정할 수 있기 때문에 알아야 합니다. 테일이란줄을 설 때 마지막 다음에 서야 하기때문에 마지막이 누구인지 알아야 합니다. C 소스 typedef stuct tagNode{ int Data; struct tagNod..
정적 메모리, 자동 메모리, 자유 저장소 코드(텍스트) 영역- 작성 한 코드가 저장 되는 영역- 프로그램이 끝날 때까지 메모리에 적재- 상수도 포함- 컴파일 되어 기계어가 들어감 데이터 영역(정적 메모리)- 프로그램이 실행에 필요한 변수가 초기화 되는 영역- 프로그램이 끝날 때까지 메모리에 적재- 함수 내 정적 변수는 프로그램 실행 시 할당되고 함수 호출 시 초기화- 전역 변수, 정적 변수 스택 영역(자동 메모리)- 프로그램이 사용하는 임시 저장 되는 영역- 함수 호출 시 생성되고, 함수 종료시 반환- 컴파일 시 크기가 결정- 스택 자료구조에게 기인- 지역 변수, 매개변수, 반환값 저장- 스택 영역이 넘어가면 스택 오버플로우 발생 힙 영역(자유 저장소)- 프로그래머가 할당/해제 하는 영역- malloc()이나 new 연산자로 할당- free()..
함수와 메소드의 차이 함수와 메소드의 명칭이 헷갈릴 때가 있어서 정리합니다. public String func(int num){// 함수return num + 10;}함수: 인풋에 의해 아웃풋이 변경 됩니다. public class Test{int num = 10; public String func(int num2){ // 메소드return this.num + num2; }}메소드 : 클래스 함수라고도 합니다.: 객체에 종속되어 있기 때문에 인풋이 그대로여도 객체의 상태에 따라 아웃풋이 변경 될 수 있습니다.
점근적 분석과 표기법 : 시간 복잡도와 공간 복잡도 시간 복잡도알고리즘의 연산 수에 따른 수행시간 공간 복잡도알고리즘이 소요 하는 메모리의 사용량 점근적 분석을 해야 하는 이유문제를 알고리즘으로 푸는 방법은 하나만 있지 않고 다양한 방법이 있습니다.다양한 방법과 하드웨어 및 상황에 따라 성능이 좌지우지 됩니다.문제를 해결하는 알고리즘이 최적의 성능을 낼 수 있는지 확인 할 필요가 있습니다. 점근적 분석이란입력 되는 데이터의 크기에 따라 수행 시간과 공간을 얼마나 차지하는지를 측정합니다.이를 통해 효율적인 알고리즘인지를 판단합니다.정확한것은 아니고 대략 이런식으로 수행시간이 나온다라는걸 측정하는 용도로 사용합니다.측정의 용도로 사용하기에 최악의 경우를 측정 할 수 있는 빅오 표기법을 주로 사용합니다. 복잡도를 표현하는 방법으로 O(빅오), Ω(오메가), Θ..

반응형