자료구조 14

[자료구조] chap4. 스택

4.1 스택이란? -스택: 뭔가를 쌓아놓은 더미, 후입선출 입출력은 맨 위에서만 일어나고 스택의 중간에서는 데이터를 삭제할 수 없다. 스택 상단 : 입출력이 이루어지는 부분스택 하단: 반대쪽 바닥부분요소: 스택에 저장되는 것공백 스택: 스택에 요소가 하나도 없을 때*자료 출력순서가 입력순서 역순으로 이루어져야 할 경우 유용*함수호출 이후 자신을 호출한 함수로 되돌아갈 때 호출된 역순으로 되돌아가야 하므로 스택 사용(복귀할 주소 기억에 사용) -시스템 스택에는 함수가 호출될때마다 활성레코드가 만들어지며 여기에 복귀주소가 저장된다. (활성레코드에는 프로그램 카운터, 함수호출시 매개변수, 함수 안에서 선언된 지역 변수 같이 생성)  -함수호출 일어나면 항상 시스템 스택에 동일한 방법으로 저장 > 함수가 자기 ..

자료구조 2024.10.16

[자료구조] chap3. 배열, 구조체, 포인터

3.1 배열-동일한 타입의 데이터 한 번에 여러 개 만들 때 사용.-배열 사용하면 연속적 메모리 공간이 할당되고 인덱스번호 사용하여 쉽게 접근 가능, 반복루프 이용 -배열 ADT: 배열은 의 쌍으로 이루어진 집합(index 주어지면 해당 value가 대응)ㄴ연산: set(주어진 인덱스에 값 저장), get(인덱스 주어지면 값 추출) 1차원배열:  *인덱스 0부터 시작    컴파일러: 배열에 메모리의 연속된 위치에 할당> list[0] 이 기본주소(base)프로그램에 list[i]라 적으면 컴파일러는 base+i*sizeof(int)에 있는 값 가져옴 2차원 배열: list[0][0] 0행 0열에서 시작.  3.2 구조체 -구조체: 타입이 다른 데이터 묶는 방법, struct 키워드 써서 표기  구조체 t..

자료구조 2024.10.12

[자료구조] chap2. 순환

2.1 순환의 소개-순환: 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제 해결하는 프로그래밍기법 ex. 피보나치 수열        -순환 알고리즘: 자기 자신을 순환적으로 호출하는 부분+ 순환 호출을 멈추는 부분-순환 호출이 끝에서 이루어지는 꼬리순환은 반복알고리즘으로 쉽게 바꿔 쓸 수 있다.[순환 vs 반복]ㄴ순환: 알고리즘 명확 간결,  반복에 비해 수행속도 느림, 여분의 기억공간 더 필요. 함수 호출 위해서 함수 매개변수들을 스택에 저장하는 사전작업 필요ㄴ반복: 지나치게 복잡해질수도 있음 -순환의 분할정복: 주어진 문제를 더 작은 동일한 문제들로 분해하여 해결-성능: O(n) 2.2 거듭제곱값 계산-팩토리얼에서는 반복이 순환보다 빠름-거듭제곱에서는 순환이 반복보다 빠름        2.3 피보..

자료구조 2024.10.07

[자료구조] chap1. 자료구조와 알고리즘

1.1 자료구조와 알고리즘 - 자료구조: 스택(먼저들어온게 나중에나감), 큐(먼저들어온게 먼저나감), 리스트, 사전, 그래프, 트리 - 프로그램=자료구조+알고리즘 - 알고리즘의 조건: 입력-0개이상/ 출력-1개이상/명백성(명령어 의미 명확해야함), 유한성(한정된 수의 단계 후 반드시 종료), 유효성(각 명령어가 실행가능해야 함) - 알고리즘 기술방법: 자연어(영어,한국어 등), 흐름도, 의사코드, 프로그래밍 언어 - 자료형(데이터의 종류): 정수, 실수, 문자열 1.2 추상 데이터 타입 - 추상데이터타입(ADT:abstract data type) 데이터 타입 추상적으로 정의한것): 데이터나 연산을 어떻게 적용할건지는 정의 안함. >정보은닉기법>추상자료형(ADT)  ㄴ객체: 추상데이터타입에 속하는 객체 정..

자료구조 2024.09.24