求用C语言写这个顺序表的主函数完整代码:
#include stdio.h
#include stdlib.h
#include windows.h
#define MAXSIZE 100
typedef int datatype;
typedef struct{
datatype a[MAXSIZE];
int size;
}sequence_list;
void init(sequence_list *slt)
{
slt-size=0;
}
void append(sequence_list *slt,datatype x)
{
if(slt-size==MAXSIZE)
{
printf("顺序表是满的");
exit(1);
}
slt-a[slt-size]=x;
slt-size=slt-size+1;
}
void display (sequence_list slt)
{
int i;
if(!slt.size)
printf("顺序表是空的");
else
for(i=0;islt.size;i++)
printf("%5d",slt.a[i]);
printf("\n");
}
int empty (sequence_list *slt)
{
memset(slt,0,sizeof(sequence_list));
return(slt-size==0?1:0);
}
int find (sequence_list slt,datatype x)
{
int i=0;
while(islt.sizeslt.a[i]!=x)
i++;
return(islt.size ? i:-1);
}
datatype get(sequence_list slt,int i)
{
if(i0||i=slt.size)
{
printf("\n指定位置的节点不存在");
exit(1);
}
else
return slt.a[i];
}
void insert(sequence_list *slt,datatype x,int position)
{
int i;
if(slt-size==MAXSIZE)
{
printf("\n顺序表是满的,无法插入");
exit(1);
}
if(position0||positionslt-size)
{
printf("\n指定的插入位置不存在");
exit(1);
}
for(i=slt-size;iposition;i--)
slt-a[i]=slt-a[i-1];
slt-a[position]=x;
slt-size++;
}
void dele(sequence_list *slt,int position)
{
int i;
if(slt-size==0)
{
printf("\n顺序表是空的,无法删除");
exit(1);
}
if(position0||position=slt-size)
{
printf("\n指定的删除位置不存在");
exit(1);
}
for(i=position;islt-size-1;i++)
slt-a[i]=slt-a[i+1];
slt-size--;
}
int main()
{
sequence_list slt;
bool exit_flag=false;
int fun_num=1;
datatype data=https://www.04ip.com/post/0;
int i=0;
printf("1.初始化2.增加节点3.显示4.清空5.查找\n6.获取节点 7.插入节点8.删除节点9.退出0.清屏\n");
while (!exit_flag)
{
printf("请选择功能:\n");
scanf("%d",fun_num);
switch (fun_num)
{
case 1:
init(slt);
break;
case 2:
printf("请输入数据:\n");
scanf("%d",data);
append(slt,data);
break;
case 3:
display (slt);
break;
case 4:
empty (slt);
break;
case 5:
printf("请输入查找的数据:\n");
scanf("%d",data);
printf("查找到的数据位置为:%d",find (slt,data));
printf("\n");
break;
case 6:
printf("请输入数据位置:\n");
scanf("%d",i);
printf("该位置的数据为:%d",get(slt,i));
printf("\n");
break;
case 7:
printf("请输入插入节点位置:\n");
scanf("%d",i);
printf("请输入插入节点数据:\n");
scanf("%d",data);
insert(slt,data,i);
break;
case 8:
printf("请输入删除节点位置:\n");
scanf("%d",i);
dele(slt,i);
break;
case 9:
exit_flag=true;
break;
case 0:
system("CLS");
printf("1.初始化2.增加节点3.显示4.清空5.查找\n6.获取节点 7.插入节点8.删除节点9.退出0.清屏\n");
break;
default:
break;
}
}
return 0;
}
效果如下图,调试通过,所有功能好使
c语言顺序表的输入函数建立方法很多,线性表是顺序表的顺序存储结构 , 这里我给你写个简单的例子参考一下 , 只要理解了,怎么写都不会错:具体代码如下: #include typedef struct{ int data[100]; int length; }Seqlist;//定义Seq这个新的数据类型 void creat(Seqlist L);//建立线性表 void show(Seqlist L);//显示线性表 int main() { Seqlist L; L.length=0;//初始化线性表的长度为0 creat(L); show(L); return 0; } void creat(Seqlist L) { int a; printf("请输入要创建的元素的个数:\t"); scanf("%d",a); for(int i=0;i
推荐阅读
- 假面骑士gis,假面骑士ginpen
- 电脑伪黑屏怎么修复呢,电脑黑屏了按哪个键可以修复
- 如何构建选题框架新媒体,新媒体选题规划的方法有
- php删除整个数据库备份 php删除数据表
- 豫北高中公众号关注学生,滑县豫北高级中学校长电话
- 体育游戏匍匐爬行教案,幼儿园匍匐爬行教案
- 服务器不识别移动硬盘,服务器识别不到移动硬盘
- mysql表怎么删除主键 mysql如何删除主键
- zblog用七牛cdn教程,七牛云静态cdn