数据结构的一些题目(C语言)

来源:百度知道 编辑:UC知道 时间:2024/04/29 08:34:29
1,编写函数lenth(),给出头指针,统计并返回线性表中的数据结点数(不含头结点)
2,编写函数max(),给出头指针,返回线性表中的最大数据值及其位置。
3,编写函数insert_after(),给出头指针、整型数x和y,要求在线性表中寻找值为x的结点,并将值为y的新结点插入其后,若成功则返回1,否则返回0。
4,调用create()函数得到第二个线性表,要求去除头结点,编写merge()函数将其插入到第一个线性表的第5个结点之后。

1.
int lenth(LNode * head)
{
LNode *p;
int i
p=head;
while(p)
{
++i;
p=p->next;
}
return i;
}

2.
int max(LNode * head)
{
LNode *p;
LNode *q;
elemtype maxelem;//具体的数据类型我不知道,所以用了elemtype
p=head;
maxelem=p->data;
while(p)
{

p=p->next;
if(p->data > maxekem)
{
maxelem=p->data;
q=p; /*将最大的位置记录下来*/
}
p=head;
while(p!=q)
{
p=p->next;
++i; /*找到最大值的位子,并记录是第几个节点*/
}

return i; /*在一个函数中只能有一个返回值,最大值你可以打印出来,这里我就不写了*/
}
}

3、
int inset_after(LNode *head,x,y)
{
LNode *p;
LNode *q;
p=head;
while(p && p->data!=