#include <stdio.h>
#include <stdlib.h>
struct SeqList
{
int MAXNUM;
int n;
int *element;
};
typedef struct SeqList *PSeqList;
PSeqList createNullList_seq(int m){
PSeqList palist = (PSeqList)malloc(sizeof(struct SeqList));
if(palist!=NULL)
{
palist->element=(int*)malloc(sizeof(int)*m);
if(palist->element)
{
palist->MAXNUM=m;
palist->n=0;
return palist;
}
else free(palist);
}
printf("Out of space!!\n");
return NULL;
}
int deleteP_seq(PSeqList palist,int p){
int q;
if(p<0||p>palist->n-1){
printf("Not exist!\n");
return 0;}
for(q=p-1;q<palist->n-1;q++)
palist->element[q]=palist->element[q+1];
palist->n=palist->n-1;
return 1;
}
int insertPre_seq(PSeqList palist,int p,int x){
int q;
if(palist->n>=palist->MAXNUM){
printf("Overflow!\n");
return 0;
}
if(p<0||p>palist->n){
printf("Not exist!\n");return 0;
}
for(q=palist->n-1;q>=p-1;q--){
palist->element[q+1]=palist->element[q];}
palist->element[p]=x;
palist->n=palist->n+1;
return 1;
}
int main()
{
int op;
int m,i;
PSeqList palist;
printf("您需要多大的空间:\n");
scanf("%d",&m);
palist=createNullList_seq(m);
for(i=0;i<m;i++){
palist->element[i]=i;
palist->n++;
}
for(i=0;i<m;i++){
printf("%d ",palist->element[i]);
}
printf("\n");
while(1){
printf("\n");
printf("请选择需要执行的项目:\n1.Delete\n2.Insert\n3.查询\n4.修改\n");printf("\n");
scanf("%d",&op);
int a,b,c,d,e;
switch(op)
{
case 1:
printf("请输入需删除的序号:\n");
scanf("%d",&a);
deleteP_seq(palist,a);
for(i=0;i<m-1;i++){
printf("%d ",palist->element[i]);
}
printf("\n\n 删除成功!!!!\n");
break;
case 2:
printf("请输入需要插入的序号、数值:\n");
scanf("%d %d",&a,&b);
printf("##########\n");
palist->n=palist->n-1;
insertPre_seq(palist,a,b);
for(i=0;i<=m+1;i++){
printf("%d ",palist->element[i]);
}
printf("\n\n 插入数值成功!!!!\n");
break;
case 3:
printf("请输入查询序号:\n");
scanf("%d",&c);
printf("%d ",palist->element[c-1]);
break;
case 4:
printf("请输入修改序号及数值:\n");
scanf("%d %d",&d,&e);
printf("###\n");
palist->element[d]=e;
for(i=0;i<m;i++){
printf("%d ",palist->element[i]);
}
printf("\n\n 修改成功!!!!\n");
break;
default :
printf("输入错误!!!!!");
}
}
return 0;
}
#include <stdlib.h>
struct SeqList
{
int MAXNUM;
int n;
int *element;
};
typedef struct SeqList *PSeqList;
PSeqList createNullList_seq(int m){
PSeqList palist = (PSeqList)malloc(sizeof(struct SeqList));
if(palist!=NULL)
{
palist->element=(int*)malloc(sizeof(int)*m);
if(palist->element)
{
palist->MAXNUM=m;
palist->n=0;
return palist;
}
else free(palist);
}
printf("Out of space!!\n");
return NULL;
}
int deleteP_seq(PSeqList palist,int p){
int q;
if(p<0||p>palist->n-1){
printf("Not exist!\n");
return 0;}
for(q=p-1;q<palist->n-1;q++)
palist->element[q]=palist->element[q+1];
palist->n=palist->n-1;
return 1;
}
int insertPre_seq(PSeqList palist,int p,int x){
int q;
if(palist->n>=palist->MAXNUM){
printf("Overflow!\n");
return 0;
}
if(p<0||p>palist->n){
printf("Not exist!\n");return 0;
}
for(q=palist->n-1;q>=p-1;q--){
palist->element[q+1]=palist->element[q];}
palist->element[p]=x;
palist->n=palist->n+1;
return 1;
}
int main()
{
int op;
int m,i;
PSeqList palist;
printf("您需要多大的空间:\n");
scanf("%d",&m);
palist=createNullList_seq(m);
for(i=0;i<m;i++){
palist->element[i]=i;
palist->n++;
}
for(i=0;i<m;i++){
printf("%d ",palist->element[i]);
}
printf("\n");
while(1){
printf("\n");
printf("请选择需要执行的项目:\n1.Delete\n2.Insert\n3.查询\n4.修改\n");printf("\n");
scanf("%d",&op);
int a,b,c,d,e;
switch(op)
{
case 1:
printf("请输入需删除的序号:\n");
scanf("%d",&a);
deleteP_seq(palist,a);
for(i=0;i<m-1;i++){
printf("%d ",palist->element[i]);
}
printf("\n\n 删除成功!!!!\n");
break;
case 2:
printf("请输入需要插入的序号、数值:\n");
scanf("%d %d",&a,&b);
printf("##########\n");
palist->n=palist->n-1;
insertPre_seq(palist,a,b);
for(i=0;i<=m+1;i++){
printf("%d ",palist->element[i]);
}
printf("\n\n 插入数值成功!!!!\n");
break;
case 3:
printf("请输入查询序号:\n");
scanf("%d",&c);
printf("%d ",palist->element[c-1]);
break;
case 4:
printf("请输入修改序号及数值:\n");
scanf("%d %d",&d,&e);
printf("###\n");
palist->element[d]=e;
for(i=0;i<m;i++){
printf("%d ",palist->element[i]);
}
printf("\n\n 修改成功!!!!\n");
break;
default :
printf("输入错误!!!!!");
}
}
return 0;
}