#include <iostream>
#include <stdlib.h>
#define MAXSIZE 5
using namespace std;
typedef struct
{
char *elem; //储存空间基地址
int length; //当前长度
}SqList;
//初始化顺序表
int InitList(SqList *L)
{
L->elem=new char[MAXSIZE];
if(!L->elem) exit(OVERFLOW);
L->length=4;
return L->length;
}
//插入数据
void ListInsert(SqList *L)
{
cout<<"请输入字符:";
for(int i=0;i<4;i++)
{
cin>>L->elem[i];
}
}
//打印表中数据
void print(SqList *L,int Length)
{
int i;
cout<<"顺序表L中数据有:";
for(i=0;i<Length;i++)
{
cout<<L->elem[i]<<" ";
}
cout<<endl;
}
//打印4-6的要求
void f_s(SqList *L)
{
cout<<"顺序表L长度为:"<<4<<endl;
cout<<"表中第三个元素为:"<<L->elem[2]<<endl;
int idx;
for(int i=0;i<4;i++)
{
if(L->elem[i]=='a')
idx=i;
}
cout<<"表中元素a的位置为:"<<idx+1<<endl;
}
//插入字符
void add(SqList *L,int Length)
{
char temp;
cout<<"请输入你要插入的字符:";
cin>>temp;
L->elem[4]=L->elem[3]; //在结尾处插入字符
L->elem[3]=temp;
print(L,Length+1); //链表长度加1
}
//删除数据
void ListDelete(SqList *L,int Length)
{
int i;
cout<<"请问删除表中第几个元素"<<endl;
cin>>i;
while(i<Length)
{
L->elem[i-1]=L->elem[i]; //将删除后面的数据放入删除位置
i++;
}
Length--; //表长度减一
print(L,Length);
}
void main()
{
SqList *L=new SqList;
//初始化顺序表
int Length=InitList(L);
//插入数据
ListInsert(L);
//打印表L中数据
print(L,Length);
f_s(L);
//增加表L中数据
add(L,Length);
//删除表L中数据
ListDelete(L,Length+1);
system("pause");
}