首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言写的线性表的顺序存储疏失

2012-11-09 
C语言写的线性表的顺序存储出错编译错误F:\数据结构\线性表的顺序存储\线性表的顺序存储.cpp(15) : error

C语言写的线性表的顺序存储出错
编译错误

F:\数据结构\线性表的顺序存储\线性表的顺序存储.cpp(15) : error C2146: syntax error : missing ';' before identifier 'L'
F:\数据结构\线性表的顺序存储\线性表的顺序存储.cpp(15) : error C2501: 'SeqList' : missing storage-class or type specifiers
F:\数据结构\线性表的顺序存储\线性表的顺序存储.cpp(15) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

代码如下

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAXLEN 100

typedef int DataType;

typedef struct
{
DataType Data[MAXLEN];
int Length;

}Seqlist;

SeqList L;


void InitList(SeqList *L)//初始化
{
L->Length=0;
}

void CreateList(SeqList *L)//创建
{
int i,n;
printf("\n请输入你要插入的元素个数!\n");
scanf("%d",&n);
printf("\n请输入%d个整数\n",n);
for(i=0;i<n;i++)
scanf("%d",&L->Data[i]);
L->Length=i;

}

void DispList(SeqList *L)//输出
{
int i;
for(i=0;i<L->Length;i++)
printf("%5d",L->Data[i]);
printf("\n");
}

int DelList(SeqList *L)//删除
{
int i,n;
printf("请输入你要删除的元素的位置\n");
scanf("%d",&n);
if(L->Length==0)
{
printf("线性表为空,不能删除\n");
return 0;
}

else if(n<1||n>L->Length)
{
printf("输出位置出错,删除失败\n");
return 0;
}

else 
{
for(n=n-1;n<L->Length;n++)
{
L->Data[n]=L->Data[n+1];

}
L->Length-=1;
printf("删除成功!删除后的线性表为:\n");
return 1;
}


}

int Lookup1(SeqList *L)//按值查找
{
int i,n,y=0;
printf("请输入你要查找的元素\n");
scanf("%d",&n);

for(i=0;i<L->Length;i++)
{
if(n==L->Data[i])
y=1;
}

if(y==0)
{
printf("你输入的值不存在于线性表!\n");
return 0;
}
else
{
printf("你查找的元素位置为:");
for(i=0;i<L->Length;i++)
{
if(n==L->Data[i])
printf(" %d",i);
}
printf("\n");
return 1;
}
}

int Lookup2(SeqList *L)//按位置查找
{
int n;
printf("请输入你要查找元素的位置\n");
scanf("%d",&n);
if(n<1||n>L->Length)
{
printf("位置出错!\n");
return 0;
}
else
{
printf("你查找元素的值为:%d\n",L->Data[n+1]);
return 1;
}
}

int Ins(SeqList *L)//插入
{
int n,i,num;
printf("请输入你要插入的位置\n");
scanf("%d",&n);
if(n<1||n>L->Length)
{
printf("插入位置出错\n");
return 0;
}
else
{
printf("请输入你要插入的元素\n");
scanf("%d",&num);
if(n==L->Length)
{
L->Data[n]=num;
L->Length++;
return 1;
}
else 
{
for(n-=1,i=L->Length;i>n;i--)
L->Data[i]=L->Data[i-1];
L->Data[n]=num;
L->Length++;
printf("插入元素成功,插入后的线性表为:\n");
return 1;
}
}
}


void Menu()
{
printf("\n 顺序栈的各种操作");
printf("\n==================================");
printf("\n| 1 建立线性表 |");
printf("\n| 2 插入操作 |");
printf("\n| 3 删除操作 |");
printf("\n| 4 按位置查找 |");
printf("\n| 5 按值查找 |");
printf("\n| 6 求线性表长度 |");
printf("\n| 0 返回 |");
printf("\n==================================");
printf("\n请输入菜单号(0~6)");



}

main()
{
int number;
char ch='Y';

SeqList L;
InitList(&L);
while(ch=='Y'||ch=='y')
{

//system("cls");
Menu();
scanf("%d",&number);
getchar();
switch(number)
{
case 1:

CreateList(&L);
printf("建立线性表成功\n");
DispList(&L);
break;
case 2:
Ins(&L);
if(Ins(&L))
{
DispList(&L);
}
break;
case 3:
DelList(&L);
break;
case 4:
Lookup2(&L);
break;
case 5:
Lookup1(&L);
break;
case 6:
printf("当前线性表的长度为:%d\n",L->Length);
break;
case 0:
ch='n';
break;
default:
printf("输入错误,请输入0~6选择!\n");

}

}
}


[解决办法]
唉 楼主自己调试一下就行了
2个错误
1:typedef struct
{
DataType Data[MAXLEN];
int Length;

}Seqlist;
改为SeqList
2:case 6:
printf("当前线性表的长度为:%d\n",L->Length);
改为L.Length

热点排行