问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据结构顺序表的操作 我写了点怎么修改?在给我写个查找

发布网友 发布时间:2023-08-10 14:26

我来回答

2个回答

热心网友 时间:2024-11-26 20:13

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 20 //数组最大界限
typedef int ElemType; //数据元素类型
typedef struct
{
ElemType a[MAXSIZE]; //一维数组子域
int length; //表长度子域
}Sqlist; //顺序存储的结构类型
Sqlist a,b,c;
/*函数声明*/
void creat_list(Sqlist *L);
void out_list(Sqlist L);
void insert_sq(Sqlist *L,int i,ElemType e);
ElemType delete_sq(Sqlist *L,int i);
int locat_sq(Sqlist L,ElemType e);
/*主函数*/
void main()
{ int i,k,loc;ElemType e,x;char ch;
do { printf("\n\n\n");
printf("\n 1.建立线性表");
printf("\n 2.插入元素");
printf("\n 3.删除元素");
printf("\n 4.查找元素");
printf("\n 0.结束程序运行");
printf("\n=======================================");
printf("\n 请输入您的选择(1,2,3,4,0)");
scanf("%d",&k);
switch(k)
{case 1:{creat_list(&a);
out_list(a);
}break;
case 2:{printf("\n 请输入插入位置(大于等于1,小于等于%d):",a.length+1);
scanf("%d",&i);
printf("\n 请输入要插入的元素值:");
scanf("%d",&e);
insert_sq(&a,i,e);
out_list(a);
}break;
case 3:{printf("\n 请输入删除元素的位置(大于等于1,小于等于%d):",a.length);
scanf("%d",&i);
x=delete_sq(&a,i);
out_list(a);
if(x!=-1)printf("\n 删除的元素为:%d\n",x);
else printf("要删除的元素不存在!");
}break;
case 4:{printf("\n 请输入要查找的元素值:");
scanf("%d",&e);
loc=locat_sq(a,e);
if(loc==-1)printf("\n未找到指定的元素!");
else printf("\n 已找到,元素位置是 %d",loc);
}break;
} //switch
}while(k!=0);
printf("\n 按回车键返回...\n");
ch=getchar();
} //主函数
/*建立线性表*/
void creat_list(Sqlist *L)
{ int i;
printf(" 请输入线性表的长度:");
scanf("%d",&L->length);
for(i=0;i<L->length;i++)
{printf("数据%d= ",i);
scanf("%d",&(L->a[i]));
}
} //creast_list
/*输出线性表*/
void out_list(Sqlist L)
{ int i;
for(i=0;i<=L.length-1;i++) printf("%10d",L.a[i]);
} //out_list
/*在线性表的第i个位置插入元素e*/
void insert_sq(Sqlist *L,int i,ElemType e)
{ int j;
if(L->length==MAXSIZE) printf("线性表已满!\n");
else if(i<1||i>L->length+1)printf("输入位置有错!\n");
else {for(j=L->length-1;j>=i-1;j--)L->a[j+1]=L->a[j];
//向后移动数据元素
L->a[i-1]=e; //插入元素
L->length++; //线性表长加1
}
} // insert_sq
/*删除第i个元素,返回其值*/
ElemType delete_sq(Sqlist *L,int i)
{ ElemType x;int j;
if(L->length==0)printf("空表!\n");
else if(i<1||i>L->length){ printf("输入位置有错!\n");
x=-1;}
else{ x= L->a[i-1];
for(j=i;j<=L->length-1;j++)L->a[j-1]=L->a[j];
L->length--;
}
return (x);
} // delete_sq
/*查找值为e的元素,返回它的位置*/
int locat_sq(Sqlist L,ElemType e)
{ int i=0;
while(i<=L.length-1&&L.a[i]!=e)i++;
if(i<=L.length-1) return (i+1);
else return (-1);
} //locat_sq

热心网友 时间:2024-11-26 20:14

严蔚敏书籍里面关于顺序表的修改和插入 都有程序,如果是插入修改的话,顺序表的操作就是向插入的地方开始 其后每个数据都下移一个单位来自:求助得到的回答
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何查被录取到的专业 怎样查被录取的专业 录取后怎样查询录取的专业 录取专业怎么查 已被录取怎么查专业 ghs网络语什么意思_ghs网络语意思出处含义介绍 纸箱企业管理软件 ghs什么意思网络(ghs什么意思网络用语) 《喜羊羊与灰太狼》大结局 0与任何数相加都得原数吗? 京东显示待寄件方审核处理快递员说货物太多找不出来 PowerPoint2003幻灯片循环播放如何设置 竞选大队委的宣传海报怎么画?大队委竞选手抄报 今年的虾有没有病毒 求函数极限的应用前景是什么 木鱼花是什么东西做的 怎样做到以诚待人? 150字 怎么通过找到好友所在位置? 微信怎么看对方在哪里呢? 花坞夕阳斜的解释是什么 中国有什么艺术? 联想ideataba2107a开后盖 怎么才能不退群情况下不接群消息? 能够快速上传下载图片文字或其他资料的是什么协议 新民客运站到沈阳西客运站坐坐车多长时间 老师给正直坦诚学生的评语 人律大招算召唤物吗 では、お召し物を... 这里的 召し物 是什么意思 我字典查不到T_T求... 380V电路中电流在500A左右用600/5的互感器应该选用什么型号的电能表 长虹空调kfr-26gw可以用手机控制吗 如何用JAVA语言建立含有若干个元素的顺序表,并实现插入,删除,查找... 135编辑器怎么发微信公众号 陆昂宁琪段芝芝小说名字 用vs2010编了以下程序 #include&lt;stdlib.h&gt; #include&lt;stdio.h&gt; #define... 试写一算法,实现顺序表的就地逆置? 你好,我想请问下C++ builder 如何实现自动补全? 近视眼不配眼镜自己能好吗 孩子假性近视如果不戴眼镜能好吗? 不戴眼镜能缓解近视吗? 云顶美测服小小买了为啥不能用 怎样才能有安全感?怎样才能让男生有归属感? 蒲公英能和莲藕一起炖吗 求小说 主角带着异能穿越 华为micromsg在哪 扇贝为啥不能给同桌发消息 one的同音词是why吗? 抖音如何获得qq权限 王者荣耀怎么针对性出装 王者荣耀怎么克制对面出装我不太会出装 王者荣耀怎么准对英雄出装