void bijiao(sstable ss,suoyinbiao &s)
{
suoyinbiao p = s;
int i;
int j = 1;
int a = ss.r[1].key;
if (j-1<=ss.length/5)
{
for (i = (j - 1) * 5 + 1;i <= j * 5;i++)
{
if (ss.r[i].key>a)
{
a = ss.r[i].key;
p->keyzhi = a;
p->weizhi = (j - 1) * 5 + 1;
}
}
j++;
p = p->next;
}
}
int chazhao(sstable ss, suoyinbiao &s, int k)
{
int n = 1;
suoyinbiao p = s;
while (p!=NULL)
{
if (k<=p->keyzhi)
{
for (int i = n * 5;i >= n * 5 - 4;--i)
{
if (ss.r[i].key == k)
{
return i;
}
}
}
p = p->next;
if (p == NULL)
n++;
}
}函数第一个参数是一个顺序表,第二个参数是一个单链表,函数意思是5个5个比较顺序表中的元素,将最大的元素存入单链表中,每个结点中的weizhi存的是每五个元素的第一个元素的位置。但是当我输入7个元素,将头5个元素存入第一个结点后,第二个结点本应该存剩下两个元素中最大的和6这个位置,但是当我调用第二个函数的时候却显示第二个结点为空,请大神解惑。。。
- 1 回答
- 0 关注
- 1413 浏览
添加回答
举报
0/150
提交
取消