loading
본문 바로가기
자료구조

(2주차 1차) 배열

by 원쿤짱쿤 2023. 3. 19.
반응형

배열이란

동일한 자료형의 데이터를 한 번에 여러게 만들때 사용됨

 

배열의 필요성

대량의 데이터를 저장하기 위해 여러 개의 개별 뱐수를 사용하는 것은 

매번 다른이름으로 접근을 해야 하므로 많은 불편이 따른다.

 

배열을 사용하면 연속적인 메모리 공안이 할당되고 인덱스 번호를 이용하여 쉽게 접근이 가능하고

반복 루프를 이용하여 쉽게 처리가 가능해짐

 

배열의 특징

- 배열<인덱스, 요소값> 쌍의 집합

- 직접 접근(Direct Acess) 방식

 

##연결리스트는 순차접근으로 배열과 서로다름

 

객체

- <인덱스,값> 쌍의 집합

연산

-create(size) = size 개의 요소를 저장 할 수 있는 배열 생성

- get(A, i) = 배열 A의 i번째 요소 반환

- set(A, i, v) = 배열 A의 I번째 위치에 값 v저장

 

1차원 배열의 선언문

> 형식: 자료형 배열이름[배열의_크기];

> 배열 크기는 배열 요소의 개수 (정수 상수)

> 인덱스(첨자)는 항상 0부터 시작

 

int List[6];  --> 4Byte * 6 = 24byte

List[0] = 100;  --> 리스트 0번째에 100을 저장해.  =set

value = List[0] --> 리스트 0번째를 추출해   =get

 

2차원 배열의 선언

형식: 자료형 배열이름[행의_크기][열의_크기];

행과 열의 인덱스(첨자)는 항상 0부터 시작

예) int List[3][2];  3은 행 , 2는 열

 

**대부분의 언어는 행을 우선으로 메모리공간에 요소가 나열된다

 

구초제 개념

구조체란?

> 자료형이 다른 데이터를 하나로 묶는 방법 cf)배열

>기존의 자료형들을 조합해 새로운 자료형을 만드는 방법

 

배열과의 차이

구조제: 타입이 다른 데이터를 하나로 묶음

> 학번,이름,학점 등 다른 데이터를 하나로 묶은것.

배열: 타입이 같은 데이터들을 하나로 묶음

> 요소들의 위치정보

 

구조체의 정의와 선언

> 구조체는 멤버(필드)를 선언한 후 반드시 구조체 변수를 생성하여 멤버에 접근해야함

1. 정의

struct Student {
     char name [20];
     int age;
     double gpa;
};

2. 선언

struct Student s;

3. 멤버접근:항목 연산자 (Menmbership Operator)

Strcpy(s.name, "Kang");
// a.name = "kang"; 은 오류 발생
s.age = 30;
s.score =3.3;

 

>같은 구조체 변수 끼리는 대입 연산만 가능!

 

 

배열을 이용한 다항식

> 배열을 사용한 2가지 방법

  - 다항식의 모든 항을 배열에 저장

  - 다항식의 0이 아닌 항만을 배열에 저장

 

다항식의 모든 항을 배열에 저장하는 방법

> 모든 차수에 대한 계수값을 배열로 저장 -> 메모리 공간이 많이 필요

> 하나의 다항식을 하나의 배열로 표현

 

 

 

 

 

 

 

 

 

 

 

 

'자료구조' 카테고리의 다른 글

(1주차 2차) 재귀호출  (2) 2023.03.12
(1주차 1차) 자료구조의 개요  (0) 2023.03.12