23년 이전 글/자료구조

    재귀함수

    함수 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드들의 모임으로 하나의 단위 의미 재귀(recursion) 자신을 재 참조하는 방법 순환 또는 재귀적 : 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용해 정의되는 것 예) 버스 기다리기(x) 버스를 기다린다. 버스가 오면 버스 번호를 확인 만일 버스 번호가 x면 버스를 타고 버스 기다리기(x) 종료 버스 번호가 x가 아니면 버스 기다리기(x) 다시 수행 재귀 함수(recursion function) 자신을 반복적으로 호출해 수행하는 방식을 통해 주어진 문제를 해결하는 함수 유형 직접 순환 : 자신을 직접 호출 간접 순환 : 피호출 함수 내에서 호출 함수를 다시 호출 재귀 예시 1에서 n까지 자연수 더하기 1부터 입력된 수까지의..

    구조체와 범용 리스트

    구조체 하나 이상의 변수를 그룹 지어서 새로운 자료형(복잡한 데이터 표현)을 정의하는 것 사용자 정의 자료형 - 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있음 배열은 같은 타입의 변수 집합이지만 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것 구조체의 구성 : 구조체의 멤버 / 멤버 변수 구조체 정의와 선언 struct 구조체이름 { 멤버변수1의 타입 멤버변수1의 이름; 멤버변수2의 타입 멤버변수2의 이름; ………… }; struct 구조체이름 { 멤버변수1의 타입 멤버변수1의 이름; 멤버변수2의 타입 멤버변수2의 이름; ………… } 구조체 변수 이름; //구조체 선언 구조체 멤버 접근 멤버 접근 연산자(.)를 사용하여 구조체에서 구조체 멤버로 접근할 수 있음 형식 : 구조체..

    선형 리스트와 배열

    순차구조 순차 자료구조(sequential structure) 구현할 자료들을 논리적인 순서대로 메모리에 연속하여 저장해 구현하는 방식 논리적인 순서와 물리적인 순서가 항상 일치 순차 자료구조는 배열을 이용해 구현함 구분 순차 자료구조 연결 자료구조 메모리 저장방식 - 메모리의 저장 시작 위치부터 빈자리 없이 자료를 순서 대로 연속하여 저장 - 논리적 순서와 물리적 순서가 일치하는 구현 방식 메모리에 저장된 물리적 위치나 물리적 순서와 상관없이 링크에 의해 논리적인 순서를 표현하는 구현 방식 연산 특징 - 삽입, 삭제 연산을 해도 빈자리 없이 자료가 순서대로 연속하여 저장 - 변경된 논리적인 순서와 저장된 물리적인 순서가 일치 삽입, 삭제 연산을 하여 논리적인 순서가 변경되어도 링크 정보만 변경되고 물리..

    추상 자료형, 알고리즘

    추상화와 추상 자료형 추상화(abstraction) 크고 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내어 주어진 문제를 해결하기 위한 것 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두는 것 추상화의 예) 아날로그 시계, printtf("******..."); 100개 별을 반복문으로. 추상화를 통해 코드의 재 사용성, 가독성을 높이고, 생산성의 증가, 에러 감소, 유지 보수에 있어 많은 시간을 줄일 수 있음 추상화의 범주 자료 추상화 - 계산될 자료의 특성을 추상화 하는 것 프로시져(제어 혹은 알고리즘) 추상화 - 실행 순서를 제어하는 특성을 추상화 하는 것 추상화와 구체화 비교 추상화 - 무엇인지를 논리적으로 정의 -> 알고리즘 정의 구체화 - 어..