main.cpp
#include <stdio.h>
#include <iostream>
#include<string.h>
#include"sqlist.h"
#define max 10
using namespace std;
int main(){
int n,i,ine;
sqlist l;
ElemType e;
// sqlist *l=&a;
if(!initlist_sq(l))
printf("抱歉!顺序表初始化失败!!!\n");
else
{
printf("恭喜你!顺序表初始化成功!\n");
printf("**********创建顺序表***********\n");
printf("输入顺序表的长度:");
scanf("%d",&n);
creatlist_sq(l,n);
printf("***********输出顺序表************\n");
traverlist_sq(l);
cout<<"enter insert location"<<endl;
cin>>i;
cout<<"enter number"<<endl;
cin>>ine;
e={ine};
listInsert_sq(l,i,e);
traverlist_sq(l);
cout<<"enter delete location"<<endl;
cin>>i;
listDelete_sq(l,i);
traverlist_sq(l);
}
return 0;
}
sqlist.h
#include <stdio.h>
#include<malloc.h>
#include<string.h>
#include<iostream>
#define LISTINITSIZE 100
#define LISTINCREMENT 10
#define true 1
#define false 0
#define ok 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
using namespace std;
typedef int ElemType;
typedef int Status;
typedef struct{
ElemType *elem;
int length;
int listsize;
}sqlist;
Status initlist_sq(sqlist &l){
l.elem=new ElemType[LISTINITSIZE];
l.length=0;
if(l.elem) return true;
else return false;
}
Status creatlist_sq(sqlist &l,int n){
int i;
l.length =n;//长度
printf("请输入%d 个整数:\n",n);
for(i=0;i<n;i++){
printf("第%d 个元素为: \n",i+1);
scanf("%d",&l.elem[i] );
}
return ok;
}
void traverlist_sq(sqlist &l)
{
int i;
printf("顺序表的长度为: %d\n",l.length );
printf("元素为:");
// cout<<l.length<<"---";
for(i=0;i<l.length ;i++)
printf("%5d",l.elem [i]);
printf("\n");
}
Status listInsert_sq(sqlist &l, int i, ElemType e){
int j=0;
int index=l.length-1;
if(i>l.length+1){
cout<<"overlength"<<endl;
return OVERFLOW;
}
(l.length)++;
for (j=index;j>index-i;j--){
l.elem[j+1]=l.elem[j];
// cout<<j<<".."<<endl;
}
l.elem[i-1]=e;
return ok;
}
Status listDelete_sq(sqlist &l,int i)
{
int j;
for(j=i;j<l.length;j++){
l.elem[j-1]=l.elem[j];
}
l.length--;
return ok;
}