일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- #둘로스
- 정보처리기사 #전산직 #정보보안기사 #DB #데이터베이스 #암호학 #가상화 #인터넷 #알고리즘 #자료구조 #파이썬 #소공 #SQL #네트워크 #웹
- 박영선 목사님 #박영선의 기도
- 태어나는 건 순서가 있지만 천국 가는 건 순서가 없다
- #이어령 선생님 #지성에서 영성으로
- 6월끝 #7월시작 #상반기끝
- 정보보안기사
- 하버드 감정수업 #HARVADE 감정수업 #하버드 #하버드대학교 #HARVADE UNIVERSITY
- 철인 #김다니엘목사님 #세상이감당치못하는사람 #여천전남병원퇴원 #장염 #고열 #입원
- 코레일기출복원 #코레일필기시험 #코레일 #한국철도공사
- 코딩테스트
- Tag#이은석#이은석성균관대교수#성균관대#성균관대학교#성균관대SW중심대학사업단장#기술변화#MZ세대#기술혁신#취업#기업#이은석성균관대SW융합대학장
- 2021 청년다니엘기도회 #다니엘기도회 #청년 #2021 #첫(처음)
- 2023
- #함께함이 기쁨입니다 #청년 #주안장로교회 #청년
- 큰산깨기#최병락목사
- 정보보안기사 #정보보호론 #사이버 #정보보안기사 필기 #정보보안기사 실기
- National Geography. 예술의전당 한가람미술관3층
- #인천신용보증공단 #신용보증공단 #신보 #경영학 #경제학 #일반상식 #한국사
- 취준생 #수험생 #공시생#자금#건강#기도
- 삼성보안기술포럼
- 경찰 #여행 #식사 #교제 #만남 #운동
- #소명 #하나님의 시간을 잇는 싸움 # 하나님께 쓰임 받는 시간 #김남국 목사님 #마커스워십 #2023
- 크라우드펀딩 #오마이컴퍼니 #첫후원 #후원
- 정보보안기사 #18회 #정보보안기사필기시험
- 책읽는사자
- 전주역 #국민연금공단 #전산직 #해커스경찰 #기도 #말씀 #예배 #찬양 #국밥 #무궁화호 #용산역 #노량진역
- 다니엘기도회 #오륜교회 #하나님을자랑하는간증의주인공이되자#말씀#기도#전도#영혼구원#성령님#주님꼐서일하신다#하나님#예수님#성령님
- #두란노 #생명의삶 #12월호 #QT #한눈으로보는성경 #요한계시록
- #가람스나이퍼
- Today
- Total
Share Garam's everyday life.
chapter 03. 연결 리스트(Linked list 1) 본문
03-1
Abstrant Data Type
순수하게 기능..
자료형은 기능이다. 구체적인 기능을 언급하지 않고 그냥 순수하게 기능이다. 기능을 나열한다.
연산자이다.
int data ??
> int num=10; 초기화를 할 때는 대입 연산자를 사용한다. 핵심..
num1+num2
자료형은 연산에 더 효용이 있다.
구조체의 정의. 자료형의 정의이다. 기능
03-2
C언어란?
1?
C라는 언어로 만들어진 프로그램은 함수로 시작해서 함수로 끝난다.
작은 함수를 만들어 호출 관계를 묶어 주어서 구성된다.
2? GOOD
프로그램이라는 것은 함수는 기능을 표현된다.
DATA(구조체)를 정의하고 함수를 정의한다.
3 VERY GOOD.
구조체로 정의한다. 더불어 함수도 같이 정의한다. = 자료형 정의이다.
구조체를 정의하고 연산을 담당하는 함수를 정의한다.(이렇게 말 해야 한다.)
자료형의 정의에서 연산이 정말 중요하다.
03-1 abstract data type 3
1. 리스트 자료구조의 ADT를 정의한다.
2. ADT를 근거로 리스트 자료구조를 활용하는 main 함수를 정의한다.
3. ADT를 근거로 리스트를 구현한다.
03-2 배열을 이용한 리스트의 구현 1
#ifndef __ARRAY_LIST_H__ //매크로
#define __ARRAY_LIST_H__ //매크로 : 해더파일의 중복파일을 막기 위한 설정이다.
#define TRUE 1
#define FALSE 0
/*** ArrayList의 정의 ****/
#define LIST_LEN 100
typedef int LData;
typedef struct __ArrayList
{
LData arr[LIST_LEN];
int numOfData;
int curPosition;
} ArrayList;
/*** ArrayList와 관련된 연산들 ****/
typedef ArrayList List;
void ListInit(List * plist);
void LInsert(List * plist, LData data);
int LFirst(List * plist, LData * pdata);
int LNext(List * plist, LData * pdata);
LData LRemove(List * plist);
int LCount(List * plist);
#endif
ArrayList.h 는 제공받는 것이 맞다.
ArrayList.c 는 보지 말 것.
ListMain.c 리스트 관련 main 함수가 담긴 소스파일..
리스트 자료구조는 데이터가 나란히 저장된다. 중복 저장을 허용한다.
리스트 자료구조는 데이터를 저장하는 것.
리스트 자료구조는 데이터의 저장과 삭제 그리고 참조가 가능한 것이다.
int main(void)
{
LInset(&list, 11);
LInset(&list, 22);
LInset(&list, 33);
}
int main(void)
{
순차 리스트 : 배열을 기반으로 구현된 리스트
연결 리스트 : 메모리의 동적 할당
03-2 배열을 이용한 리스트의구현 2
리스튼 저장이 나란히 된다. 기준만 만족하면 앞에서 뒤에서 저장 할 수도 있다.
LFirst
LNext
시작을 알리는 형태 존재, 두 번쨰를 알리는 형태가 존재한다.
03-2 배열을 이용한 리스트의 구현 3
int LFirst(List * plist, LDate * pdata)
{
if(plist
03-2 배열을 이용한 리스트의 구현4
리스트! 배열을 기반으로 구현하기3: 삭제
삭제되는 데이터는 반환된 과정을 통해서 되돌려주는 것이 옳다!!
LData LRmove(List * plist)
{
int rpos=plist -> plist->curPosition // 삭제할 데이터의 인덱스 값 참조
int num=plist->numOfData
int i;
LData rdata=plist->arr[rpos]; // 삭제할 데이터를 임시로 저장
// 삭제를 위한 데이터의 이동을 진행하는 반복문
for(i=rpos; i<num-1; i++)
plist->arr[i]
03-2 배열을 이용한 리스트의 구현 5
리스트에 구조체 변수 저장하기2: 구조체 point와 관련함수들의 정의.
배열의 장점과 단점! 그리고 연결 기반 리스트
배열 기반 리스트의 단점
배열의 길이가 초기에 결정되어야 한다. 변경이 불가능하다.
삭제의 과정에서 데이터의 이동(복사)가 매우 빈번히 일어난다.
배열 기반 리스트의 장점
데이터의 참조가 쉽다. 인덱스 값을 기준으로 어디든 한 번에 참조가 가능하다.
"배열도 각종 자료구조의 구현에 중요한 도구이고, 그 자체로도 훌륭한 자료구조입니다."
'자료구조2' 카테고리의 다른 글
Chapter 10 정렬(Sorting) (0) | 2018.07.15 |
---|---|
Chapter 09. 우선순위 큐(Priority Queue)와 힙(Heap) (0) | 2018.07.14 |
Chapter 08. 트리(Tree) (0) | 2018.07.11 |
04-1[연결 리스트 관련 코드에 익숙해지기] (0) | 2018.07.05 |
chapter 04 연결 리스트(Linked List) 2 (0) | 2018.07.05 |