본문 바로가기

자료구조

자료구조 공부하기 구조체 구조체 사용하기 http://blog.naver.com/wlsgkr91/220901907173 1.구조체 사용하기-변수를 하나씩 사용하면 한사람의 정보만 저장할 수 있다.-여러명의 정보를 저장하려면 변수를 계속 추가해야된다.-자료를 체계적으로 관리하기 위해 구조체를 제공한다. struct Person{ char name[20]; int age; char address[100; }-위와 같은 식으로 인적정보를 구조체로 표현한다.-사람단위로 정보를 처리할 수 있다.-구조체도 배열로 만들 수 있다.-구조체는 관련 정보를 하나의 의미로 묶을 때 사용한다. struct 구조체이름{ 자료형 멤버이름; }; //마지막 닫을때 ;을 붙인다.struct 구조체 이름 변수이름; struct Person { char name[20]; in.. 더보기
자료구조 공부 알고리즘의 복잡도 분석 방법 http://blog.naver.com/wlsgkr91/220901179608 1. 알고리즘의 복잡도 분석 방법.-여러 가지 문제점 때문에 구현하지 않고 알고리즘의 효율성을 따져보는 기법이 알고리즘의 복잡도 분석이다. -알고리즘 복잡도 분석은 구현하지 않고도 모든 입력을 고려하는 방법이고 실행 하드웨어나 소프트웨어 환경과는 관계 없이 알고리즘의 효율성을 평가할 수 있다. 2.시간 복잡도 함수-알고리즘의 실행 가능 분석을 시간 복잡도 라고 하고알고리즘이 사용하는 기억 공간 분석을 공간 복잡도라고한다.-시간 복잡도는 알고리즘의 절대적인 실행 시간을 나타내는 것이 아니라 알고리즘을 이루고 있는 연산들이 몇 번이나 실행되는지를 숫자로 표시한다. ex)만약 동일한 조건에서 똑같은 일을 하는데 알고리즘1이 20개의.. 더보기
정보처리사 1과목 데이터베이스 개체 관계 모델 E-R모델 http://blog.naver.com/wlsgkr91/220898566272 1.개체 관계 모델(Entity-Relationship) 개요-E-R 모델은 개념적 데이터 모델의 가장 대표적인 것으로, 1976년 피터 첸에 의해 제안되었다.-E-R 모델은 개체와 개체 간의 관계를 기본 요소로 이용하여현실 시계의 무질서한 데이터를 개념적인 논리 데이터로 표현-E-R모델은 개체 타입과 이들 간의 관계타입을 이용해현실 세계를 개념적으로 표현하였다.-E-R 모델에서는 데이터를 개체, 관계, 속성 으로 묘사한다.-E-R 모델은 특정 DBMS를 고려한 것은 아니다.-E-R 다이어그램으로 표현하며, 1:1,1:N, N:M 과 같은 관계유형을 제한없이 나타낼 수 있다. -최초에는 Entity, Relationship, .. 더보기
자료구조 공부하기 추상 데이터 타입 http://blog.naver.com/wlsgkr91/220898523261 추상 데이터 타입-정보처리기사 포스팅에서 데이터에 대해 설명하였다.데이터란 프로그램에서 처리의 대상이 되는 모든 것을 말한다.-정수일수도,문자열일수도,실수일수도 이렇게 데이터 집합과 이러한 데이터에 적용할 수 있는 연산의 집합을 의미한다. -예를 들어 C언어에서는 int라는 데이터 타입에서 데이터는"정수의 집합" 이고 연산은 "정수간의 연산" 이다. 자료구조는 이러한 추상 데이터 타입을 프로그래밍 언어로 구현 하는 것이라 할 수 있다. 추상 데이터 타입 abstract data type : ADT-데이터 타입의 정의가 그 데이터 타입의 구현으로부터 분리된 데이터 타입을 말한다. -사용자들은 추상 데이터 타입이 제공하는 연산만을.. 더보기
자료구조 공부하기 자료구조란? 알고리즘이란? http://blog.naver.com/wlsgkr91/220898511910 자료구조란??-사람들이 사물을 정리하는 것과 마찬가지로 프로그램에서 자료를 정리하는 여러 가지 구조들이 있다. 이를 자료구조라 부른다. 스택이란??-책상에 책을 쌓아 놓은 것처럼 자료들을 정리하는 구조를스택이라 한다.-스택에서는 맨 위에서만 자료를 추가하거나 제거할 수 있다. 큐란??-상범의 줄에 해당하는 자료 구조를 우리는 큐라 부른다. 큐에서는 먼저 도착한 자료가 먼저 빠져나간다. 예를들어 물건을 쌓아 놓는 것= 스택영화관 매표소의 줄 = 큐할 일 리스트 =리스트영어사전 = 사전, 탐색구조지도= 그래프조직도= 트리 이렇게 예를 들어 설명할 수 있다. 문제를 처리하는 절차가 필요한데이를 알고리즘이라 부른다. 프로그램= 자료구.. 더보기
동적 메모리 할당 http://blog.naver.com/wlsgkr91/220895953442 동적 메모리 할당변수를 선언하는 대신 프로그램의 요청으로 메모리를 할당할 수 있다. 이것을 "동적 메모리 할당" 이라고 한다. Malloc 함수를 호출하여 동적메모리 할당을 요청하면 요구하는 크기의 메모리를 할당하고 그 시작 주소를 반환한다. 10개의 정수를 저장하기 위한 메모리 공간이필요하다. int *p; p=(int *)malloc(40); if(p==NULL){ //동적 메모리 할당이 실패 //적잘한 조치를 취한다. } P[0]=12; P[1]=24; *(P+2)=36; int *-malloc이 반환하는 주소는 타입이 없는 주소 void * 이다.-정수들을 저장하기 위해서 이것을 int *로 변환한다. (반드시 필요한 .. 더보기
문자열 http://blog.naver.com/wlsgkr91/220897001854문자열 -문자열은 char타입의 배열의 각 칸마다 문자 하나씩 저장된다. 문자열 배열 char str[6]; 문자열의 마지막은 null이 저장되어있다. 문자열의 끝을 표시하는 역할을 한다. 즉 배열의 크기가 문자열의 길이보다 적어도 1만큼 길어야한다. 문자열을 생성하는 편리한 방법을 제공한다. 1.char str[] = "hello"; -hello와 null 값으로 저장된 char형 배열. 변경이 가능하다. 2.char *str = "hello"; -String literal 수정이 불가하다. string.h라이브러리 주요함수 strcpy -문자열 복사 strlen - 문자열의 길이 strcat - 문자열 합치기 strcmp-문.. 더보기
문자열을 입력받아 문자열의 길이를 출력해보는 코드 문자열을 입력받아 문자열의 길이를 출력해보는 코드를 해보려고한다. #include #include int main() { char buffer[40]; while(1){ printf("$ "); scanf("%s",buffer); printf("%s:%d\n",buffer,strlen(buffer)); } return 0; } 1. 길이 40인 char형 배열을 선언. 2. while문을 돌며 buffer에 문자열입력. 3.입력받은 문자열과,문자열의 길이 출력. *문제점 1) scanf는 단어 단위로 입력을 쓰다보면 공백문자를 기준으로 단어 하나하나를 입력받는다. 따라서 입력한 모든 문자열이 공백이 사이에껴있으면 입력한 모든 문자열을 통째로 인식을 하지않고 공백문자까지만 인식을 한다. 2)배열 길이 40.. 더보기