这个程序在C++中怎么样才能够实现啊 ,我实现不出来
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 100 //线形表存储空间的初始分配量
#define LISTINCREMENT 10 //线形表存储空间的分配增量
typedef struct {
ElemType *elem;//存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList;
Status InitList_Sq(SqList &L){ //构造一个空的线性表L
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem) exit(OVERFLOW); //分配存储空间失败
L.length=0; //空表长度为0
L.listsize=LIST_INIT_SIZE; //初始存储容量
return OK;}
Status ListInsert_Sq(SqList &L,int i,ElemType e)
{ //在线性表L中第i个位置之前插入新元素e,i的合法值为为1<=i<=L.length+1
if(i<1||i>L.length+1) return ERROR; //i 值不合法
if(L.length>=L.listsize){ //当前存储空间已满,增加分配
newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase) exit(OWERFLOW); //存储空间分配失败
L.elem=newbase; //新基址
L.listsize+=LISTINCREMENT; //增加存储容量
}
q=&(L.elem[i-1]; //q为插入位置
for(p=&(L.elem[L.length-1]);p>=q;--p)
*(p+1)=*p;//插入位置及之后的元素右移
*q=e; //插入e
++L.length;//表长增1
return OK;
}// ListInsert_Sq
void main()
{ int n,i, j=0;int w;
SqList L;
printf("input the number of the elem")
scanf("(n<100)n= %d",n\n);
while(i<n)
{scanf("%d",L.elem[j]\n);
printf("input the insert elem w before i)
scanf("i= %d",i\n);
scanf("w= %d",w\n);
ListInsert_Sq(L,i,w);
for(i=0;i<n+1;i++)
printf("%4d",L.elem[i]);
putchar('\n');
}