선형 표 (데이터 구조 가 엄격 하고 민감 하 다)
#include
#include
#include
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 2
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList;
Status InitList(SqList *L) /* 2.3 */
{ /* : */
(*L).elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!(*L).elem)
exit(OVERFLOW); /* */
(*L).length=0; /* 0 */
(*L).listsize=LIST_INIT_SIZE; /* */
return OK;
}
Status ClearList(SqList *L)
{ /* : L 。 : L */
(*L).length=0;
return OK;
}
Status ListEmpty(SqList L)
{ /* : L 。 : L , TRUE, FALSE */
if(L.length==0)
return TRUE;
else
return FALSE;
}
Status ListInsert(SqList *L,int i,ElemType e) /* 2.4 */
{ /* : L ,1≤i≤ListLength(L)+1 */
/* : L i e,L 1 */
ElemType *newbase,*q,*p;
if(i<1||i>(*L).length+1) /* i */
return ERROR;
if((*L).length>=(*L).listsize) /* , */
{
newbase=(ElemType *)realloc((*L).elem,((*L).listsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)
exit(OVERFLOW); /* */
(*L).elem=newbase; /* */
(*L).listsize+=LISTINCREMENT; /* */
}
q=(*L).elem+i-1; /* q */
for(p=(*L).elem+(*L).length-1;p>=q;--p) /* */
*(p+1)=*p;
*q=e; /* e */
++(*L).length; /* 1 */
return OK;
}
Status ListDelete(SqList *L,int i,ElemType *e) /* 2.5 */
{ /* : L ,1≤i≤ListLength(L) */
/* : L i , e ,L 1 */
ElemType *p,*q;
if(i<1||i>(*L).length) /* i */
return ERROR;
p=(*L).elem+i-1; /* p */
*e=*p; /* e */
q=(*L).elem+(*L).length-1; /* */
for(++p;p<=q;++p) /* */
*(p-1)=*p;
(*L).length--; /* 1 */
return OK;
}
Status GetElem(SqList L,int i,ElemType *e)
{ /* : L ,1≤i≤ListLength(L) */
/* : e L i */
if(i<1||i>L.length)
exit(ERROR);
*e=*(L.elem+i-1);
return OK;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.