#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"); }