데이터 구조 학습 의 길 - 제1장: 서론
4816 단어 데이터 구조 학습 의 길데이터 구조
많은 전문 교재 처럼 서론 이 빠 질 수 없 는 것 은 물론 이 책 도 예 외 는 아니다.
서론 에 서 는 우리 가 책 전체 에서 배 울 내용, 즉 데이터 구조 라 는 책 이 찾 는 몇 가지 중점 을 요약 했다. 집합, 선형 표, 나무, 숲, 그림 이다.
많은 이론 적 인 것, 책 은 이미 매우 상세 하 게 해석 되 었 으 니, 나 는 여기 서 더 이상 쓸데없는 말 을 할 필요 가 없다.
나 는 단지 나의 견해 만 을 말 할 뿐이다.
우선 프로그램 을 쓰 는 사람 이 라면 '프로그램 = 데이터 구조 + 알고리즘' 이라는 식 을 알 아야 한다. 데이터 구조의 중요성 은 두말 할 필요 도 없다.
만약 에 ACM 을 하 는 친구 가 있다 면 각종 데이터 구조 가 낯 설 지 않 을 것 이다. 데이터 구 조 는 알고리즘 경기 의 큰 핵심 이 고 각종 데이터 구조 에 학대 당 한 적 이 없 으 며 진정 으로 ACM 을 해 본 사람 이 아니다.
저 는 사실 쓰레기 일 뿐 입 니 다. 다 니 는 학 교 는 2 류 중의 2 류 에 속 하기 때문에 선생님 들 의 수준 도 유한 합 니 다. 데이터 구조 라 는 과목 은 깊이 있 게 강의 하지 않 았 고 자신 도 그 당시 에 철저하게 배우 지 못 했 습 니 다. ACM 을 하 는 과정 에서 데이터 구조 도 매우 부실 하기 때문에 자신의 데이터 구 조 를 향상 시 키 는 능력 을 공 고 히 복습 해 야 합 니 다.그래서 이 연재 적 인 박문 을 쓰기 시작 했다.
중점 에 들 어가 면 먼저 서론 에서 몸 을 풀 어 주세요. 그것 이 바로 3 원 조 의 설립 입 니 다.
이것 은 가장 간단 한 집합 이 라 고 할 수 있 습 니 다. 그러면 우 리 는 책의 절차 에 따라 진행 합 시다.
첫 번 째 단계: 3 원 그룹의 생 성
집합 이란 일반적으로 배열 형식 으로 저장 되 기 때문에 우 리 는 하나의 배열 을 정의 할 수 있 기 때문에 우 리 는 처음에 몇 가지 유형 을 정의 했다.
typedef int* Triplet;// , ,
typedef int ElemType;//
typedef int Status;//
STEP 2: 삼원 조 의 조작
Status InitTriplet(Triplet *T,ElemType v1,ElemType v2,ElemType v3)
{
// : (v1,v2,v3)
*T = (ElemType*)malloc(3*sizeof(ElemType));// 3
if(!(*T)) exit(OVERFLOW);//
(*T)[0] = v1;
(*T)[1] = v2;
(*T)[2] = v3;
return OK;
}
Status DestoryTriplet(Triplet *T)
{
// :
free(*T);
*T = NULL;
return OK;
}
Status Get(Triplet T,int i,ElemType *e)
{
// : T ,1<=i<=3
// : e T i
if(i<1||i>3) return ERROR;
(*e) = T[i-1];
return OK;
}
Status Put(Triplet T,int i ,ElemType e)
{
// : T ,1<=i<=3
// : T i e
if(i<1||i>3) return ERROR;
T[i-1] = e;
return OK;
}
Status IsAscending(Triplet T)
{
// : T
// : T , 1, 0
return (T[0]<=T[1])&&(T[1]<=T[2]);
}
Status IsDescending(Triplet T)
{
// : T
// : T , 1, 0
return (T[0]>=T[1])&&(T[1]>=T[2]);
}
Status Max(Triplet T,ElemType *e)
{
// : T
// : e T 3
(*e) = T[0]>T[1]?T[0]:T[1];
(*e) = (*e)>T[2]?(*e):T[2];
return OK;
}
Status Min(Triplet T,ElemType *e)
{
// : T
// : e T 3
(*e) = T[0]
세 번 째 단계: 전체 코드 구현
#include
#include
#include
#include
#include
#include
전체적으로 서론 은 할 말 이 없습니다. 관건 은 데이터 구 조 를 익히 는 것 입 니 다. 자, 이번 에는 여기까지 하 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Sparse Table을 아십니까? 나는 알고 있다.Sparse Table을 지금 배웠으므로, 메모를 겸해 씁니다. 불변의 수열의 임의의 구간에 대한 최소치/최대치를, 전처리 $O(N\log N)$, 쿼리 마다 $O(1)$ 로 구하는 데이터 구조입니다. 숫자 열의 값...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.