针对带表头结点的单链表,给出算法中使用的单链表的存储结构(数据类型)的定义。试编写下列函数。

(1)定位函数Locate:在单链表中寻找第i个结点。若找到,则函数返回第i个结点的地址;若找不到,则函数返回NULL。(2)求最大值函数max:通过一趟遍历在单链表中确... (1) 定位函数Locate:在单链表中寻找第i个结点。若找到,则函数返回第i个结点的地址;若找不到,则函数返回NULL。

(2) 求最大值函数max:通过一趟遍历在单链表中确定值最大的结点。
(3) 统计函数number:统计单链表中具有给定值x的所有元素的个数。
求大神给算法~~
展开
 我来答
icso
2013-01-11 · TA获得超过650个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:427万
展开全部
// 节点数据结构定义
struct Node
{
int data;
struct Node *next;
};
// 定位第i个节点

struct Node *Locate(struct Node head, int i)
{
struct Node *p = &head;
int k;
for(k = 0; k < i && p; ++k)
{
p = p->next;
}
return p;
}
// 寻找最大值

int max(struct Node head)
{
struct Node *p = head.next;
int max = -1;
if(p != NULL)
{
// 若第一个节点不空,则先将最大值初始化成第一个节点的值,再与后面节点的值进行比较

max = p->data;
p = p->next;
while(p)
{
max = p->data > max ? p->data : max;
p = p->next;
}
}
return max;
}
// 同值节点计数

int number(struct Node head, int n)
{
struct Node *p = head.next;
int count = 0;
while(p)
{
if(p->data == n)
{
++count;
}
p = p->next;
}
return count;
}

验证的代码请自行编写。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式