#include
using namespace std;
typedef int ElemType;//int 助记符
const LIST_INIT_SIZE=100;
const LISTINCREMENT=10;
typedef struct
{
ElemType *elem;
int length;
int listsize;
int incrementsize;
}SqList; //顺序表的结构
void InitList_Sq( SqList &L, int maxsize,int incresize);
void ListInserRear(SqList &L,int n, ElemType z[]);
void ErrorMessage(char *s);
void ListInsert_Sq( SqList &L, int i, char z[] ) ;
void increment(SqList &L);
int main()
{
SqList L;
char a,b,c,d,e;
char z[]={a,b,c,d,e};
InitList_Sq(L,6,3);
ListInserRear(L,0,e);
return(1);
} //主函数
void InitList_Sq( SqList &L, int maxsize,int incresize)
{
L.elem = new ElemType [maxsize]; //分配数组空间
L.length = 0; //空表
L.listsize = maxsize; //可容纳数据元素的最大个数
L.incrementsize = incresize; //扩容元素个数
}
void ListInserRear(SqList &L,int n, char z[])
{
int i;
for(i=1;i<=n;i++)
ListInsert_Sq(L,L.length+1,z[i-1]);
}
void ListInsert_Sq( SqList &L, int i, char z[] )
{ ElemType *q,*p;
if (i<1||i>L.length+1)
ErrorMessage(char *s);//(“ i 值不合法!”)调自定义的函数
if (L.length >= L.listsize)
increment(L);// 当前存储空间已满,为 L扩充空间
q = &(L.elem[i-1]); // q为插入位置(存储地址)
for (p=&(L.elem[L.length-1]); p >=q; --p)
*(p+1) = *p; // 插入位置及之后的元素右移
*q = z[i-1]; // 插入e
++L.length; // 顺序表长度增1
}
void ErrorMessage(char *s)
{
cout<
}//i值不合法,
void increment(SqList &L)
{ ElemType *a; int i;
a =new ElemType[L.listsize+L.incrementsize];
for(i = 0; i
delete [] L.elem; // 释放原数组占用的空间
L.elem = a; // 移交新空间首地址
L.listsize += L.incrementsize; // 扩后的L最大空间
}
我实在是编不下去了,求高手指点,加注释,主要是在空表插入a,b,c,d,e.考虑不清楚了.加注释,谢啦~~