데이터 구조 - 순서 표 삭제 연습
함수 설명:
#include
#include
#include
#define FALSE 0
#define TRUE 1
typedef int DataType;
//
struct SeqList
{
int MAXNUM; //
int n; //
DataType *element; //
};
typedef struct SeqList *PSeqList;
// ,m
PSeqList createNullList_seq(int m)
{
PSeqList palist = (PSeqList)malloc(sizeof(struct SeqList));
if(palist != NULL)
{
palist->element = (DataType *)malloc(sizeof(DataType)*m);
if(palist->element)
{
palist->MAXNUM = m;
palist->n = 0;
return(palist);
}
else
{
free(palist);
}
}
printf("out of space!
");
return NULL;
}
// 。 , FALSE
int locate_seq(PSeqList palist, int x)
{
int q;
for (q=0; q n; q++)
{
if (palist->element[q] == x)
{
return q;
}
}
return FALSE;
}
// x
int deleteV_seq(PSeqList palist, DataType x)
{
int p, q, flag=0;
for(p=0; pn; p++)
{
q = locate_seq(palist, x);
if (q)
{
flag = 1;
deletesP_seq(palist, q, 1);
break;
}
}
if(flag == 0)
{
printf("
");
return TRUE;
}
return FALSE;
}
// x
int deletesV_seq(PSeqList palist, DataType x)
{
int p, q, flag=0;
for(p=0; pn; p++)
{
q = locate_seq(palist, x);
if (q)
{
flag = 1;
deletesP_seq(palist, q, 1);
}
}
if(flag == 0)
{
printf("
");
return FALSE;
}
return TRUE;
}
// j k
int deletesP_seq(PSeqList palist, int p, int k)
{
int q, i;
if(p+k > palist->n)
{
printf("out of range
");
exit(0);
}
if(p == 0 && k == palist->n)
{
printf(" 。
");
exit(0);
}
for(i=0; iif(p<0 || p > palist->n)
{
printf("Not exist!
");
exit(0);
}
for(q=p; q n-1; q++)
{
palist->element[q] = palist->element[q+1];
}
palist->n = palist->n-1;
}
return TRUE;
}
//
void print(PSeqList palist)
{
int i;
for(i=0; in; i++)
printf("%d\t", palist->element[i]);
printf("
");
}
int main()
{
PSeqList lx_alist;
int max,len,i,x,q;
int temp;
int j,k;
printf("
(<100):");
scanf("%d",&max);
lx_alist = createNullList_seq(max);
for(i=0; i<10; i++)
{
lx_alist->element[i] = i+3;
lx_alist->n++;
}
printf(" :
");
printf(" :
");
print(lx_alist);
printf("
:
");
lx_alist->element[3] = 9;
printf(" :
");
print(lx_alist);
temp = 8;
printf("
%d :
", temp);
deleteV_seq(lx_alist, temp);
printf(" :
");
print(lx_alist);
temp = 9;
printf("
%d :
", temp);
deletesV_seq(lx_alist, temp);
printf(" :
");
print(lx_alist);
temp = 0;
k = 7;
printf("
%d %d :
", temp, k);
deletesP_seq(lx_alist, temp, k);
printf(" :
");
print(lx_alist);
system("pause");
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에 따라 라이센스가 부여됩니다.