데이터 구조 - 선형 표 (List) 1
5468 단어 데이터 구조
선형 표 의 기본 동작:
Operation:
반환 값:
InitList(*L)
빈 선형 표를 만 듭 니 다.
ListEmpty(L)
비어 있 으 면 true 로 돌아 갑 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다.
ClearList(*L)
목록 비우 기
GetElem(L,i,*e)
i 번 째 요소 값 을 e 에 게 되 돌려 줍 니 다. 0 으로 되 돌아 가 는 데 성공 하 였 습 니 다.
LocateElem(L,e)
e 가 있 으 면 번호 로 돌아 갑 니 다. 그렇지 않 으 면 0 으로 돌아 갑 니 다.
ListInsert(*L,i,e)
요소 삽입 e
ListDelete(*L,i,*e)
i 번 째 요 소 를 삭제 하고 값 e 를 되 돌려 줍 니 다.
ListLength(L)
선형 표 요소 갯 수 되 돌리 기
1. 선형 표 의 순서 저장 구조: 주소 연속 저장 장치 로 선형 표 의 데이터 요 소 를 순서대로 저장 합 니 다.(C 언어의 type: def: ypedef 는 type: define 의 줄 임 말로 볼 수 있 습 니 다. 말 그대로 형식 정의 입 니 다. 즉, 기 존 형식 에 사용 하기 편리 한 별명 을 다시 정 의 했 을 뿐 새로운 데이터 형식 이 생 성 되 지 않 았 습 니 다. type: def 의 사용 은 매크로 정의 define 와 비슷 하지만 다음 과 같 습 니 다. 1. \ # define 과 달리 type: def 가 내 놓 은 기호 입 니 다.이름 은 값 대신 형식 에 만 제 한 됩 니 다. 2. type: def 의 설명 은 프로세서 가 아 닌 컴 파일 러 에 의 해 실 행 됩 니 다. 3. type: def 는 \ # define 보다 더 유연 합 니 다.)(구조 체 구성원 변수의 방문, - > 앞 에 놓 인 것 은 지침 이 고 앞 에 놓 인 것 은 구조 체 변수 입 니 다. 예 를 들 어 하나의 구조 체 struct student 이 정의 되 었 을 때 안에 int a 가 있 습 니 다. 그 다음 에 구조 체 변수 struct student student 및 구조 체 변수 포인터 struct student * p 가 있 고 p = & stu 가 있 으 면 p - > a (등가 (* p). a) 와 stu. a 는 같은 뜻 을 표시 합 니 다.)
#include
/* */
#define MAXSIZE 20
typedef int ElemType;
typedef struct{
ElemType data[MAXSIZE];
int length;
}SqList;
/***********/
/* */
int GetElem(SqList L,int i,ElemType *e)
{
if(L.length==0||i<1||i>L.length)
return 0;
*e=L.data[i-1];
return 1;
}
/******/
/* */
int ListInsert(SqList *L,int i,ElemType e)
{
int k;
if(L->length==MAXSIZE)
return 0;
if(i<1||i>L->length+1)
return 0;
if(i<=L->length)
{
for(k=L->length;k>=i;k--)
L->data[k]=L->data[k-1];
}
L->data[i-1]=e;
L->length++;
return 1;
}
/******/
/* */
int ListDelete(SqList *L,int i,ElemType *e)
{
int k;
if(L->length==0)
return 0;
if(i<1||i>L->length)
return 0;
*e=L->data[i-1];
if(ilength)
{
for(k=i;klength;k++)
L->data[k-1]=L->data[k];
}
L->length--;
return 1;
}
/**********/
void main()
{
SqList L1;
SqList *PL1;
ElemType e1;
ElemType *pe;
int p = 0;
int j;
pe = &p;// ,
PL1=&L1;
for(j=0;j<10;j++)
{
L1.data[j]=j+10;
}
//e=&L1.data[5];
L1.length=10;
GetElem(L1,5,pe);
printf("GetElem 5 =%d
",*pe);//printf("%d
",p);
ListInsert(PL1,5,555);
ListDelete(PL1,6,pe);
printf("GetElem 5 =%d
",*pe);
for(j=0;j"L1.data[%d]=%d
",j,L1.data[j]);
}
getchar();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.