永发信息网

VB 关于【有序线性表】

答案:2  悬赏:0  手机版
解决时间 2021-03-05 02:14
  • 提问者网友:相思似海深
  • 2021-03-04 21:58
国二VB真题
在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为
A 63
B 64
C 6
D 7
答案为:B

我想请VB高手帮忙解释一下这道题,我不大明白什么叫“有序线性表”,还有就是,比较的方式。
为什么不是63呢?

谢谢~~ O(∩_∩)O
最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-03-04 23:13
关于有序线性表是说线性表中的元素是按照升序或降序(允许相邻元素相同)的方式排列的。线性表是一种基本的计算机内的存储工具。
顺序查找的基本思想是:从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查找不成功。当然最坏就是没有找到啦,所以的问题答案是64不是63啦~
全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-03-05 00:38
vb不是很清楚,附上c語言版本的,你參考一下:

#include<iostream>
using namespace std;
#define maxsize 100
typedef int datatype;
class seqlist
{
datatype list[maxsize];
int length;
public:
seqlist() //构造函数
{
length=0;
}
void slcreat(int n); //创建顺序表
void slinsert(datatype x); //在顺序表的位置i插入值x
int getlength() //获取当前顺序表的数据长度
{
return length;
}
int slisempty(); //顺序表是否为空
void slprint(); //输出顺序表的数据内容
};
//创建长度为n的顺序表
void seqlist::slcreat(int n)
{
int i;
datatype x;
cout<<"请输入顺序表的数据元素:";
for(i=0;i<n;i++)
{
cin>>x;
list[i]=x;
length++;
}
}
//在顺序表的位置i插入值x
void seqlist::slinsert(datatype x)
{
int i,k;
for(k=0;k<length;k++)
{
if(x>list[k])
{
continue;
}
else
{
i=k;
break;//goto ii;
}

}
///ii:
cout<<k<<endl;
if(k==length) //
{
i=length;
}

for(k=length;k>i;k--)
{
list[k]=list[k-1];//数据插入前,位置i之后的数据后移
}
list[i]=x;
length++;


}
//判断表是否为空
int seqlist::slisempty()
{
if(length<=0)
{
return 0;
}
else
{
return 1;
}
}
//输出顺序表数据
void seqlist::slprint()
{
int i;
if(!slisempty())
{
cout<<"顺序表为空~"<<endl;
}
else
{
for(i=0;i<length;i++)
{
cout<<" "<<list[i]<<" ";
}
cout<<endl;
}
}

int main()
{
int n,i,flag=1;
seqlist sl;
datatype x;
cout<<"请输入创建顺序表的长度:";
cin>>n;
sl.slcreat(n);
while(flag)
{
flag++;
cout<<" 插入数据:";
cin>>x;
sl.slinsert(x);
cout<<" 插入数据 "<<x<<" 后顺序表为:"<<endl;
sl.slprint();

if(flag==5)
flag=0;
}

return 0;

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯