[c 언어] 데이터 구조 - 동적 저장 순서 표 의 확장, 합병 (소스 코드)
#include
#include
#include
#include
#define MAXSIZE 3
//
typedef int elemtype;
typedef struct sqList{
elemtype *data;
int size; //
int capacity; //
}sqList;
//
void init_sqList(sqList *Psql)
{
assert(Psql); // 0
Psql->data=(elemtype *)malloc(MAXSIZE*sizeof(elemtype));
Psql->capacity=MAXSIZE;
Psql->size=0;
}
//
void expland_sqList(sqList *Psql,int n)
{
assert(Psql);
if(Psql->size=Psql->capacity) //
{
Psql->capacity*=n; // n
elemtype *new_data=(elemtype*)malloc(Psql->capacity*sizeof(elemtype)); // realloc
memcpy(new_data,Psql->data,Psql->size*sizeof(elemtype)); // src n dest
free(Psql->data);
Psql->data=new_data;
printf("
");
}
}
//
sqList union_sqList(sqList *La,sqList *Lb) //
{
assert(La);
assert(Lb);
sqList Lc;
Lc.size=La->size+Lb->size;
Lc.capacity=Lc.size;
Lc.data=(elemtype *)malloc(Lc.capacity*sizeof(elemtype));
memcpy(Lc.data,La->data,La->size*sizeof(elemtype));
memcpy(Lc.data+La->size,Lb->data,Lb->size*sizeof(elemtype));
return Lc;
}
// ,
void insert_sqList(sqList *Psql,int i,elemtype e)
{
int j;
assert(Psql);
if(i<1||i>Psql->size+1||Psql->size==Psql->capacity) // i
{
printf("The position is wrong
");
return;
}
for(j=Psql->size-1;j>=i-1;j--) //
Psql->data[j+1]=Psql->data[j];
Psql->data[i-1]=e;
Psql->size++;
printf("
");
}
void print_sqList(sqList *Psql)
{
assert(Psql);
int i;
if(Psql->size==0)
{
printf("NULL
");
return;
}
for(i=0;isize;i++)
{
printf("%d ",Psql->data[i]);
}
printf("
");
}
int main()
{
sqList La,Lb,Lc;
elemtype e;int i,t;
while((i=getchar())!='#') // #
{
switch(i)
{
case '1':init_sqList(&La);init_sqList(&Lb);printf("
");break; //
case '2':print_sqList(&La);print_sqList(&Lb);break; //
case '3':printf("
"); //
scanf("%d %d",&t,&e);
insert_sqList(&La,t,e);
insert_sqList(&Lb,t,e);
break;
case '4':expland_sqList(&La,2);expland_sqList(&Lb,2);break; //
case '5':Lc=union_sqList(&La,&Lb);printf("
");break; //
case '6':print_sqList(&Lc);break; //
}
}
free(La.data);free(Lb.data);free(Lc.data);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.