본문 바로가기

자료구조5

04.스택 4.1 스택이란? 스택에 A,B,C,D를 순서대로 입력했다가 하나로 삭제하면 맨 위에 놓여진 D가 삭제된다. 이러한 입출력 형태를 후입선출(LIFO:Last-In First-Out)이라고 한다. 스택에서의 입출력은 맨 위에서만 일어나고 스택의 중간에서는 데이터를 삭제할 수 없다. 스택에서 입출력이 이루어지는 부분을 스택 상단(stack top)이라고 하고 반대쪽인 바닥 부분을 스택 하단(stack bottom)이라고 한다. 스택에서 저장되는것을 요소(element)라고 부른다. 스택에 요소가 하나도 없을 때 그러한 스택을 공백 스택(empty stack)이라고 한다. 텍스트 에디터에서 "되돌리기(undo)"기능을 구현할 떄 스택을 사용할 수 있다.왜냐하면 수행된 명령어들 중에서 가장 최근에 수행된 것부터.. 2023. 11. 23.
배열,구조체,포인터 배열,구조체,포인터 3.1 배열 배열의 개념 배열은 동일한 타입의 데이터를 한 번에 여러 개 만들 때 사용된다. 배열을 사용하면 '연속적인 메모리 공간'이 할당되고 인덱스 번호를 사용하여 쉽게 접근이 가능하기 때문에 반복 루프를 이용하여 여러가지 작업을 손쉽게 할 수 있다. 배열 ADT 배열은 의 쌍으로 이루어진 집합으로 정의할 수 있다. ADT 객체:쌍의 집합 연산: - create(size) ::==size개의 요소를 저장할 수 있는 배열 생성 - get(A,i) ::==배열 A의 i번째 요소 반환 - set(A,i,v) ::==배열 A의 i번째 위치에 값 v저장. get함수는 배열과 인덱스를 받는다.만약 그 인덱스가 유효하다면 인덱스 위치의 값을 반환한다.만약 인덱스가 유효하지 않다면.. 2023. 11. 23.
자료구조와 알고리즘 1.1 자료구조와 알고리즘 자료구조란? 프로그램에서 자료들을 정리하여 보관하는 여러가지 구조를 자료구조라한다.컴퓨터 프로그램은 무엇으로 이루어져있을까? 프로그램=자료구조+알고리즘 대부분의 프로그램에서 자료를 처리하고 있고 이들 자료는 자료구조를 사용하여 저장된다. 또한 주어진 문제를 처리하는 절차가 필요하다.이것은 알고리즘이라고 불린다. 자료구조와 알고리즘은 밀접한 관계가 있어서 자료구조가 결정되면 그 자료구조에서 사용할 수 있는 알고리즘이 결정된다. 컴퓨터가 복잡한 자료들을 빠르게 저장,검색,분석,전송,갱신하기 위해서는 자료구조가 효율적으로 조직화되어 있어야 한다. 각 응용에 가장 적합한 자료구조와 알고리즘을 선택해야한다.알고리즘이란? 컴퓨터로 문제를 풀기 위한 단계적인 절차 문제와 컴퓨터가 주어진 상.. 2023. 11. 23.
02.순환 2.1 순환의 소개 순환이란 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 기법이다. 순환의 예 순환은 본질적으로 순환적인 문제나 그러한 자료구조를 다루는 프로그램에 적합하다. 예를 들어 정수의 팩토리얼은 다음과 같이 정의된다. $$ n!= \begin{cases} 1 & {n=0} \\ n*(n-1)! & {n}\ge{1} \end{cases} $$ 위의 정의에서 팩토리얼 n!을 정의하는데 다시 팩토리얼(n-1)!이 사용되었다. 이러한 정의를 순환적이라 한다. int factorial(int n){ if(nretrurn 2+sum(1) sum(1):1출력->retrurn 1+sum(0) sum(0):0출력->retrurn 1 다음 함수를 recursive(5)로 호출하였을 때.. 2023. 11. 22.
01.자료구조와 알고리즘 1.1 자료구조와 알고리즘 자료구조란? 프로그램에서 자료들을 정리하여 보관하는 여러가지 구조를 자료구조라한다. 컴퓨터 프로그램은 무엇으로 이루어져있을까? 프로그램=자료구조+알고리즘 대부분의 프로그램에서 자료를 처리하고 있고 이들 자료는 자료구조를 사용하여 저장된다. 또한 주어진 문제를 처리하는 절차가 필요하다.이것은 알고리즘이라고 불린다. 자료구조와 알고리즘은 밀접한 관계가 있어서 자료구조가 결정되면 그 자료구조에서 사용할 수 있는 알고리즘이 결정된다. 컴퓨터가 복잡한 자료들을 빠르게 저장,검색,분석,전송,갱신하기 위해서는 자료구조가 효율적으로 조직화되어 있어야 한다. 각 응용에 가장 적합한 자료구조와 알고리즘을 선택해야한다. 알고리즘이란? 컴퓨터로 문제를 풀기 위한 단계적인 절차 문제와 컴퓨터가 주어진.. 2023. 11. 22.