정적 링크 의 기본 동작
6121 단어 데이터 구조
#include
#include
#include
using namespace std;
#define MAXSIZE 1000
#define OK 0
#define error 1
typedef int Status;
typedef int ElemType;
//
typedef struct component
{
ElemType data;//
int cur; // (cursor)
}component,StaticList[MAXSIZE];
1、
Status InitList(StaticList space)
{
int i;
for(i=0;i1;
space[MAXSIZE-1].cur=0;// 0
return OK;
}
2. 포 지 셔 닝 요소
//
// , 0
Status LocateElem (StaticList S,ElemType e)
{
i=S[MAXSIZE-1].cur;
while(i&&S[i].data!=e)
i=S[i].cur;
return i;
}
3. 예비 링크 에 공간 신청
// , ( )
// ,
Status Malloc_SLL(StaticList space)
{
int i=space[0].cur;
if(i)// space[0].cur 0
{
space[0].cur=space[i].cur;
}
return i;
}
4. 정적 링크 의 요소 개 수 를 가 져 옵 니 다.
int ListLength(StaticList L)
{
int k=MAXSIZE-1;
k=L[k].cur;
int i=0;
while(k!=0)
{
i++;
k=L[k].cur;
}
return i;
}
5. 요소 삽입
Status ListInsert(StaticList L, int i,ElemType e)
{
int j,k,i;//
k=MAXSIZE-1;//
if(i)(i<1||i>ListLenth(L)+1)
{
return error;
}
j=malloc(L);
if(j)
{
L[j].data=e;
for(i=1;i<1;i++)
{
k=L[k].cur;
}// k
L[j].cur=L[k].cur;
L[k].cur=j;//
// : n 1 L[MAX-1]
return OK;
}
return error;
}
6 、 원소 하 나 를 삭제
void free_SL(StaticList &L, int k)
{
// k
L[k].cur=L[0].cur;//
L[0].cur=k;
}
Status delete_SL(StaticList &L,int n)
{
int i,j,k;
if(n<1||n>ListLength(L)+1)
return error;
k=MAXSIZE-1;
for(i=0;i1;i++)
k=L[k].cur;// k
j=L[k].cur;//
L[k].cur=L[j].cur;//
free_SL(L,j);
return OK;
}
7. 선형 표 옮 겨 다 니 기
int visit(ElemType e);
Status Taverse(StaticList L,int(*f)(ElemType e))
{
int k=MAXSIZE-1;
k=L[k].cur;
while(k)
{
f(L[k].data);
k=L[k].cur;
}
return 0;
}
int visit(ElemType e)
{
printf("%d
",e);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.