线性表的相关问题求老哥们帮帮忙在线急等

前端哲哲 2017-10-17 03:00:11
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define ElemType char
#define int Status
#define OVERFLOW -2
#define ERROR 0
#define OK 1
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
Status InitList_Sq(SqList &L){
L.elem =(ElemType *)malloc(LIST_INIT_SIZE *sizeof(ElemType));
if(!L.elem) exit(OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}//初始化
Status Build(SqList &L) //建立表
{
int i,n;
printf("请输入元素个数n和n个元素\n");
scanf("%d",&n);
if(n>LIST_INIT_SIZE)//如果n大于当前空间
{
L.elem=(ElemType *)realloc(L.elem,(n+LISTINCREMENT)*sizeof(ElemType));
if(!L.elem) exit(OVERFLOW);
L.listsize=n+LISTINCREMENT;
}
for(i=0;i<n;i++)
scanf("%d",L.elem+i);
L.length=n;
return OK;
}//建立表
Status ListInsert_Sq(SqList &L,int i,ElemType e){
char *newbase,*q,*p;
if(i<1||i>L.length+1)return ERROR;
if(L.length>=L.listsize){
newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)exit(OVERFLOW);
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;
*q=e;
++L.length;
return OK;
}//插入操作
Status ListDelete_Sq(SqList&L,int i,ElemType &e){
char *p,*q;
if((i<1)||(i>L.length))return ERROR;
p=&(L.elem[i-1]);
e=*p;
q=L.elem+L.length-1;
for(++p;p<=q;++p)*(p-1)=*p;
--L.length;
return OK;
}//删除操作
Status DestroyList(SqList &L){
if (L.elem) free(L.elem);
printf("完成链表内存销毁\n");
getch();
system("cls");
}//销毁操作
Status ClearList(SqList &L){
if (!L.elem)
return ERROR;
L.length=0;
return OK;
}//重置操作
Status ListEmpty(SqList L){
if(L.elem>0)
printf("顺序表为空\n");
else
printf("顺序表不为空\n");

}//判断表空
Status ListLength(SqList L){
int i;
for(i=0;i<L.length;i++)
printf("%d ",i);

}//测量表长
Status GetElem(SqList L,int i,ElemType&e){

if(i<0||i>L.length)
return ERROR;
e=L.elem[i-1];
printf("第i个元素是:%s",e);

}//查找第i个位置的元素并返回值
Status LocateElem(SqList L,ElemType e){
int i = 0;
while(i<=L.length){
if(L.elem[i] == e)
break;
else
i++; }
if(i<=L.length) return i;
return 0;
}//查找元素位置若无返回0
Status Print(SqList &L){
int i;
for(i=0;i<L.length;i++)
printf("%d ",*(L.elem+i));
}//输出顺序表
void menu(){
printf("\n\n\n");
printf("\t\t************************************************\n");
printf("\t\t************************************************\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t* 1、销毁顺序表 *\n");
printf("\t\t* 2、判断表空 *\n");
printf("\t\t* 3、测量表长 *\n");
printf("\t\t* 4、插入元素 *\n");
printf("\t\t* 5、删除元素 *\n");
printf("\t\t* 6、清空序列表 *\n");
printf("\t\t* 7、取顺序表指定位置的元素 *\n");
printf("\t\t* 8、输出顺序表 *\n");
printf("\t\t* 9、查找元素所在位置 *\n");
printf("\t\t* 10、查看菜单 *\n");
printf("\t\t* 0、退出程序 *\n");
printf("\t\t* *\n");
printf("\t\t************************************************\n");
printf("\t\t*************按 任 意 键 进 入 系 统************\n");
printf("\t\t************************************************\n");
getch();
system("cls");
}
void Welcome(){

printf("\n\n\n\n\n\n");
printf("\t\t************************************************\n");
printf("\t\t************************************************\n");
printf("\t\t* *\n");
printf("\t\t* 线性表的顺序操作 *\n");
printf("\t\t* *\n");
printf("\t\t************************************************\n");
printf("\t\t*************按 任 意 键 进 入 系 统************\n");
printf("\t\t************************************************\n");
getch();
system("cls");

}

int main(){
int i,x,cmd;
SqList L;
ElemType e;
system("color 1D");
Welcome();
menu();
Build(&L);
for (;;)
{
printf("请输入选择操作的编号(编号为0~10,10为程序菜单)\n");
scanf("%d", &cmd);
switch (cmd)
{
case 1:{
DestroyList( &L);
break;
}
case 2:{
ListEmpty( L);
break;
}
case 3:{
ListLength( L);
break;
}
case 4:{
printf("请输入要插入的位置与插入元素:");
scanf("%d",&i);
scanf("与%s",&e);
ListInsert_Sq( &L,i, e);
break;
}
case 5:{
printf("请输入要删除的位置:");
scanf("%d",&i);
ListDelete_Sq( &L, i, &e);
break;
}
case 6:{
ClearList( &L);
break;
}
case 7:{
printf("请输入所取元素的指定位置:");
scanf("%d",i);
GetElem( L, i,&e);
break;
}
case 8:{
Print(&L);
break;
}
case 9:{
printf("请输入要查找的元素:");
scanf("%s",&e);
LocateElem(L,e);
break;
}
case 10:{
menu();
break;
}
case 0:
{
return 0;//退出程序

}
default:{
printf("请输入正确序号\n");
break;

}
}
}
return 0;


}
报错部分c:\users\administrator\desktop\编程实验\线性表1.cpp(13) : error C2146: syntax error : missing ';' before identifier 'length'
c:\users\administrator\desktop\编程实验\线性表1.cpp(13) : error C2501: 'Status' : missing storage-class or type specifiers
c:\users\administrator\desktop\编程实验\线性表1.cpp(13) : error C2501: 'length' : missing storage-class or type specifiers
c:\users\administrator\desktop\编程实验\线性表1.cpp(14) : error C2146: syntax error : missing ';' before identifier 'listsize'
c:\users\administrator\desktop\编程实验\线性表1.cpp(14) : error C2501: 'Status' : missing storage-class or type specifiers
c:\users\administrator\desktop\编程实验\线性表1.cpp(14) : error C2501: 'listsize' : missing storage-class or type specifiers
c:\users\administrator\desktop\编程实验\线性表1.cpp(16) : error C2146: syntax error : missing ';' before identifier 'InitList_Sq'
c:\users\administrator\desktop\编程实验\线性表1.cpp(16) : error C2501: 'Status' : missing storage-class or type specifiers
c:\users\administrator\desktop\编程实验\线性表1.cpp(16) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
萌新求老哥门指明下改那里怎么改可以运行
...全文
293 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧