선형 표 의 순서 저장 구조 (c 언어 구현)
1794 단어 데이터 구조
#include
#define MAXSIZE 20
#define T 1
#define F 0
typedef int Status;
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length;
}SqList;
void init(SqList *L);
Status listInsert(SqList* L, int i, ElemType e);
Status listDelete(SqList* L, int i);
Status getElem(SqList L, int i, ElemType* e);
Status listEmpty(SqList L);
void print(SqList L);
int main()
{
int i = 0;
SqList L;
init(&L);
for (; i < 10; i++)
{
listInsert(&L, 1, i);
}
print(L);
listDelete(&L, 1);
listDelete(&L, 2);
print(L);
getElem(L, 1, &i);
printf("%d
", i);
return 0;
}
void init(SqList *L)
{
L->length = 0;//(*L).length
}
Status listInsert(SqList *L, int i, ElemType e)
{
int k;
if (MAXSIZE == L->length)
{
return F;
}
if (i < 1 || i > L->length + 1)
{
return F;
}
if (i <= L->length)
{
for (k = L->length - 1; k >= i - 1; k--)
{
L->data[k + 1] = L->data[k];
}
}
L->data[i - 1] = e;
L->length++;
return T;
}
Status listDelete(SqList* L, int i)
{
int k;
if (listEmpty(*L))
{
return F;
}
if (i < 1 || i > L-> length)
{
return F;
}
if (i < L->length)
{
for (k = i; k < L->length; k++)
{
L->data[k - 1] = L->data[k];
}
}
L->length--;
return T;
}
Status getElem(SqList L, int i, ElemType* e)
{
if (listEmpty(L) || i < 1 || i > L.length)
{
return F;
}
*e = L.data[i - 1];
return T;
}
Status listEmpty(SqList L)
{
if (0 == L.length)
{
return T;
}
else
{
return F;
}
}
void print(SqList L)
{
int i = 0;
if (listEmpty(L))
{
printf("List is empty!
");
}
else
{
for (; i < L.length; i++)
{
printf("%d
", L.data[i]);
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.