没有跑出来,先放代码吧
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdint.h>
#define maxsize 100
typedef struct{
int *elem; //存储空间基地址
int length; //当前长度
} SqList; //顺序表的结构类型为SqList
//构造顺序表
int InitList(SqList *L) { //构造空顺序表
L.elem=new int[maxsize];
if(!L.elem) exit(OVERFLOW); //内存分配失败
L.length=0;
printf("已新建大小为%d的线性表\n",maxsize);
return 1;
};
//取值操作
int GetElem(SqList L,int i,int &e) { //此处传入的取值是对第i个数字
if(i<1||i>L.length) return 0; //判断i值是否合理,不合理则返回error
e=L.elem[i-1];
printf("成功取到第%d个元素\n",i);
return 1;
}
//查找操作
int LocateElem(SqList L,int e) { //在顺序表中查找值为e的元素,返回序号
for(int i=0;i<L.length;i++)
if(L.elem[i]==e) return i+1;
return 0;
}
//插入操作
int ListInsert(SqList *L,int i,int e) { //在第i个位置后面插入e(i>=1&&i<=n)
if(i<1||i>L.length+1) return 0;
if(L.length==maxsize) return 0; //空间已满
for(int j=L.length-1;j>i-1;j--) L.elem[j+1]=L.elem[j]; //插入位置及之后的元素后移
L.elem[i-1]=e;
++L.length;
printf("成功插入元素%d,当前表长为%d \n",e,L.length);
return 1;
}
//删除操作
int ListDelete(SqList *L,int i) {//在顺序表L中删除第i个元素 (i>=1&&i<=length)
if(i<1||i>L.length) return 0;
for(int j=i;j<L.length-1;j++)
L.elem[j-1]=L.elem[j];
--L.length;
printf("成功删除线性表中第%d个元素\n",i);
return 1;
}
测试代码(主函数)
#include <stdio.h>
#include <stdlib.h>
#include<stdint.h>
#include"sqlist.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
SqList L;
int st=InitList(&L);
return 0;
}