猿问

单链表第二个结点存不进数据?

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这个位置,但是当我调用第二个函数的时候却显示第二个结点为空,请大神解惑。。。

Ma峰
浏览 1414回答 1
1回答

冷凌川

申请新的节点空间了吗
随时随地看视频慕课网APP
我要回答