从一个具有n个节点的单链表中查找其值等于x的节点,在查找成功的情况下,平均需要比较几个结点,说下原因。

 我来答
a864567085
2019-07-15 · TA获得超过530个赞
知道答主
回答量:8
采纳率:0%
帮助的人:1.1万
展开全部

从一个具有n个节点的单链表中查找其值等于x的节点,在查找成功的情况下,平均需要比较(n+1)/2个节点。

由于单链表只能进行单向顺序查找,以从第一个节点开始查找为例,查找第m个节点需要比较的节点数f(m)=m,查找成功的最好情况是第一次就查找成功,只用比较1个节点,最坏情况则是最后才查找成功,需要比较n个节点。

所以一共有n种情况,平均下来需要比较的节点为(1+2+3+...+(n-1)+n)/n=(n+1)/2。

扩展资料

单链表中的数据是以结点来表示的,每个结点是由一个元素和一个指针构成,元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。

由于结点中的指针只存放了下一个结点的地址,因此只能从每个结点找到其对应下个结点,因此查找时只能从当前结点找到对应的下个节点,也就是只能顺序进行查找。

参考资料来源:百度百科-单链表

Negamax
推荐于2017-11-25 · TA获得超过2721个赞
知道小有建树答主
回答量:656
采纳率:100%
帮助的人:282万
展开全部
n个节点,单链表。
如果x等于第一个元素的值。则要比较1次
x等于第二个元素的值,则要比较2次

最不巧:x值刚好等于第n个元素,则要比较x次

所以总次数是1+2+3+……+n-1+n=(n+1)*n/2

所以平均需要:(n+1)/2次。

顺序数组可以用折半查找,需要 log2…为低…N 次
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a0622aeba
2012-04-13 · TA获得超过1703个赞
知道小有建树答主
回答量:1145
采纳率:0%
帮助的人:1582万
展开全部
查找成功的情况下,x在1~n各节点的可能一样,平均需要比较的节点数为
(1+2+..+n)/n=(n+1)/2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
棒哟言0k
2012-04-12 · 超过16用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:23.8万
展开全部
什么意思?写代码加注释?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式