#include "stdio.h"#include "stdlib.h"#define MaxSize 100typedef struct sqlist{ int data[MaxSize]; int length; }SqList;void CreateList(SqList *p,int data[],int n);int ListInsert(SqList *p,int i ,int e); void ShowList(SqList *p,int n);void main(){ SqList*L;int data[6]={34,178,2,88,76,10},n,j;//顺序表初始化 L=(SqList *)malloc(sizeof(SqList));if(!L) printf("内存分配失败");else L->length=0;CreateList(L,data,6);ShowList(L,6); // 插入元素 printf("请输入插入值的位置和数值(逗号分隔):");scanf("%d,%d",&j,&n);n=ListInsert(L,j,n);if(n==-1) printf("插入位置有问题!\n");else ShowList(L,n);//删除元素 printf("请输入删除的位置:");scanf("%d",&j);n=ListDelete(L,j);if(n==-1) printf("删除失败!\n");else printf("删除的元素为:%d\n",n);ShowList(L,L->length);//释放空间 free(L);}//创建 void CreateList(SqList *p,int data[],int n){ int i; for(i=0;i<n;i++) p->data[i]=data[i]; p->length=n;} //插入 int ListInsert(SqList *p,int i ,int e){int j;if(i<1|| i>p->length+1)return -1;i--;//形象i是逻辑位序 for(j=p->length ; j>i ; j--)p->data[j]=p->data[j-1];p->data[i]=e;p->length++;return p->length;} //显示 void ShowList(SqList *p,int n){ int j; for(j=0;j<n;j++) printf("%d",p->data[j]); printf("\t顺序表长度为:%d\n",p->length);}//删除int ListDelete(SqList *L,int i){ int k;int x; if(L->length==0) { printf("此表为空表,无法删除!"); return -1; } else if(i<i || i>L->length) { printf("删除的位置有误!"); return -1; } else{ x=L->data[i-1]; for(k=i;k<L->length;k++) L->data[k-1]=L->data[k]; L->length--; return x; }}
联系客服