728x90
반응형

자료구조 17

[자료구조] 스택 (Stack)

스택(stack) - 스택에 저장된 원소는 top으로 정한 곳만 접근이 가능하다. ㄴ 후입 선출 구조(LIFO, Last-In-First-Out) : 마지막에 삽입한 원소는 맨 위에 쌓여 있다가 가장 먼저 삭제된다. 스택의 연산 - 삽입(push) ① top의 위치를 하나 증가(∵ top은 스택에서 마지막 자료를 가리키기 때문) 이때, 만약 top의 위치가 스택의 크기보다 커지면 오버플로우가 발생하므로 연산 수행하지 않고 종료. ② 스택의 top이 가리키는 위치에 삽입 -①-> -②-> ←top C ←top B ←top B B A A A - 삭제(pop) ① 스택이 공백이 아니라면 top이 가리키는 원소를 먼저 반환 ② 스택의 top의 위치를 그 아래의 원소로 변경(top 위치 하나 감소) -①-> -②..

자료구조 2022.01.08

[자료구조] 이중 연결 리스트

이중 연결 리스트(doubly linked list) - 양쪽 방향으로 순회할 수 있도록 노드를 연결한 리스트 - 이중 연결 리스트의 노드 구조 ㄴ 두 개의 링크 필드와 한 개의 데이터 필드로 구성 ㄴ llink(left link) 필드 : 왼쪽 노드와 연결하는 포인터 ㄴ rlink(right link) 필드 : 오른쪽 노드와 연결하는 포인터 llink data rlink ● ● // 노드 구조에 대한 구조체 정의 public class DblNode { DblNode llink; String data; DblNode rlink; }; - 리스트의 이중 연결 리스트 구성 1 ● → 1 → ← 2 null data1 2 ● 1 ● data2 null - 원형 이중 연결 리스트 1 ● ➥ ☇ 1 → ← 2 ..

자료구조 2022.01.02

[자료구조] 순차 자료구조

리스트(List) - 자료를 나열한 목록 ex) 분식 = ['떡볶이', '김밥', '순대', '핫도그', '튀김', '어묵'] 수능 = ['국어', '수학', '영어', '사회', '과학', '외국어'] 나라 = ['대한민국', '미국', '중국', '일본'] 선형 리스트(Linear List) - 순서 리스트(Ordered List) - 자료들 간 순서를 갖는 리스트 선형 리스트의 저장 - 원소들의 논리적 순서와 같은 순서로 메모리에 저장 - 순차 자료구조의 원소 위치 계산 - 선형 리스트가 저장된 시작 위치 a - 원소의 길이 : l - i번째 원소의 위치 = a + (i-1) x l 선형 리스트에서의 원소 삽입 - 중간에 원소 삽입시 그 뒤 원소들은 한 자리씩 뒤로 이동하여 물리적 순서와 논리적 순..

자료구조 2022.01.01

[자료구조] 다항식

다항식 - ax^e 형식의 항들의 합으로 구성된 식 a : 계수 (coefficient) x : 변수(variable) e : 지수(exponent) - 지수에 따라 내림차순으로 항을 나열 - 다항식의 차수 : 가장 큰 지수 - 다항식 항의 최대 개수 = (차수 + 1) 개 다항식의 표현 - 각 항의 지수와 계수의 쌍에 대한 선형 리스트 ex) A(x) = 4x^3 + 3x^2 + 2 ☞ p1 = ((3, 4), (2, 3), (0, 2)) - 1차원 배열 이용 ex) P(x) = 4x^3 + 3x^2 + 2 차수(인덱스) x^3 x^2 x 0 계수(값) 4 3 0 2 - 2차원 배열 이용 ex) P(x) = 4x^1000 + 3x^2 + 2 차수 계수 1000 4 2 3 0 2 단순 연결 리스트를 이용..

자료구조 2022.01.01

[JAVA / 자바] 객체지향 프로그래밍

코드의 재사용 - 개발비용을 줄이고 신뢰성과 생산성을 높임 - 객체 재사용 : 기존 객체의 인터페이스를 맞추어 새로운 프로그램에서 재사용 - 상속(inheritance) : 새로 필요한 객체*가 기존 객체**와 유사한 경우, 기존 객체의 코드를 상속받고 추가되는 부분만 작성하여 객체를 생성하는 방법 *새로 필요한 객체 : 자식 객체(child object), 하위 객체(sub object) **기존 객체 : 부모 객체(parent object), 상위 객체(super object) 자바의 캡슐화 - 캡슐화된 클래스를 조합하여 프로그램 구성 (class 키워드) - 클래스 내부의 멤버들을 캡슐화하기 위해 접근 제어자 사용 > public - 모든 클래스에서 접근 가능 > protected - 같은 패키지의..

자료구조 2021.12.26

[자료구조] 소프트웨어와 자료구조

소프트웨어의 생명주기 (요구 분석 > 시스템 명세 > 설계 > 구현 > 테스트 > 유지 보수) 소프트웨어를 체계적으로 개발하고 관리하기 위해 개발 과정을 단계별로 나누어 구분한 것. 자료 추상화(Data Abstraction) 처리할 자료, 연산, 자료형에 대한 추상화 표현 자료: 프로그램의 처리 대상이 되는 모든 것을 의미 연산: 어떤 일을 처리하는 과정. (연산자에 의해 수행) 자료형: 처리할 자료의 집합과 자료에 대해 수행할 연산자의 집합 ex) 자료: 정수의 집합 추상 자료형(ADT, Abstract Data Type) 자료와 연산자의 특성을 논리적으로 추상화하여 정의한 자료형 자료 연산 추상화 추상 자료형 알고리즘 정의 구체화 자료형 프로그램 구현 알고리즘 입력(input): 알고리즘 수행에 필..

자료구조 2021.12.05

[자료구조] 자료구조 개요

자료구조란? 자료를 효율적으로 사용하기 위해 자료의 특성에 따라 분류하여 구성하고 저장 및 처리하는 모든 작업을 일컫는다. 왜 자료구조를 배워야 하나? 컴퓨터는 스스로 일을 처리하지 못하고 사람의 명령을 받아 일을 수행하기 때문에 컴퓨터가 효율적으로 문제를 처리하기 위해서는 문제를 정의하고 분석하여 최적의 프로그램을 작성해야 하기 때문이다. 자료구조의 분류 단순 구조 정수, 실수, 문자, 문자열 등 기본 자료형 선형 구조 자료들 간 앞뒤 관계가 1:1 선형 관계 ex) 리스트, 연결리스트, 스택, 큐, 덱 등... 비선형 구조 자료들 간 앞 뒤 관계가 1:多, 또는 多:多 관계 ex) 트리, 그래프 등... 파일 구조 레코드의 집합인 파일에 대한 구조 ex) 순차파일, 색인파일, 직접파일 등...

자료구조 2021.12.04
728x90
반응형