[C 언어] 데이터 구조 ― 동적 순서 표
이것 이 바로 동적 순서 표 의 기본 논리 입 니 다. 제 가 직접 코드 를 올 리 겠 습 니 다. 쓸데없는 말 은 하지 않 겠 습 니 다.
순서 표 의 초기 화.우 리 는 다섯 개의 노드 공간 을 열 었 다.
void InitSeqList(SeqList* seq)
{
assert(seq);
seq->_arry = (DataType *)malloc(sizeof(DataType)*DEFAUIL_CAPACITY);
seq->_size = 0;
seq->_capicity = 5;
}
출력 순서 표
void PrintSeqList(SeqList* seq)
{
size_t index;
assert(seq);
for(index = 0;index < seq->_size;index++)
{
printf("%d->",seq->_arry[index]);
}
printf("->NULL");
}
현재 순서 표 가 가득 찼 을 때, 이어서 순서 표 공간 을 만 듭 니 다.
void CreatLength(SeqList *seq)
{
assert(seq);
if(seq->_size == seq->_capicity)
{
seq->_capicity *= 2;
seq->_arry = (DataType *)realloc(seq->_arry,sizeof(DataType)*seq->_capicity);
if(seq->_arry == NULL)
{
printf("MALLOC ERROR");
exit(0);
}
}
}
끝 삽입:
void PushBack(SeqList* seq, DataType x)
{
assert(seq);
assert(seq->_arry);
CreatLength(seq);
seq->_arry[seq->_size++] = x;
}
삽입:
void Insert(SeqList* seq, size_t pos, DataType x)
{
size_t index;
assert(seq);
assert(0<=pos && pos<seq->_size);
CreatLength(seq);
for(index = pos;index < seq->_size;++index)
{
seq->_arry[pos+1] = seq->_arry[pos];
}
}
지우 기;
void Erase(SeqList* seq, size_t pos)
{
size_t endIndex;
assert(seq);
assert(0<=pos && pos<seq->_size);
for(endIndex = pos;endIndex < seq->_size-1;endIndex++)
{
seq->_arry[endIndex] = seq->_arry[endIndex+1];
}
}
모든 항목 삭제:
void RemoveAll(SeqList* seq, DataType x)
{
size_t OneIndex = 0,TwoIndex = 0;
int count = 0;
assert(seq);
for(;OneIndex < seq->_size;++OneIndex)
{
if(seq->_arry[OneIndex] != x)
{
seq->_arry[TwoIndex] = seq->_arry[OneIndex];
TwoIndex++;
}
else
{
++count;
}
}
seq->_size -= count;
}
이것 이 바로 순서 표 의 기본 적 인 실현 이다. 헤더 파일, 함수 라 이브 러 리 에 포함 되 지 않 고 실 현 된 구체 적 인 코드 를 말 했다.복사 해 보 세 요.
본 고 는 '남 은 알 군' 블 로그 에서 나 온 것 이 니 작가 에 게 연락 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.