java问题,链表跟顺序表到底有什么不同?顺序表我知道,但是为什么说链表读取数据时要从头开始,

java问题,链表跟顺序表到底有什么不同?顺序表我知道,但是为什么说链表读取数据时要从头开始,而顺序表可以直接读取任意位置?比如顺序表的按姓名查询学生信息:publics... java问题,链表跟顺序表到底有什么不同?顺序表我知道,但是为什么说链表读取数据时要从头开始,而顺序表可以直接读取任意位置?比如顺序表的按姓名查询学生信息:
public static void search(String a,students b[]){
int i;
int j=0;
for(i=0;i<b.length;i++)
if(b[i]!=null && a.equals(b[i].name)){
j=1;
break;
}
if(j==1)
System.out.println(b[i]);
else
System.out.println("查无此姓名的成绩");

}
链表的姓名查询:
public void search(String name)
{
StudNode current=head;
int flag=-1;
while(current!=null)
{
if(current.getName().equals(name))
{
System.out.print(current);
flag=1;
}
current=current.getNext();
}
if(flag==-1)
System.out.println("没有此学生信息!!");
}

public void search(String name)
{
StudNode current=head;
int flag=-1;
while(current!=null)
{
if(current.getName().equals(name))
{
System.out.print(current);
flag=1;
}
current=current.getNext();
}
if(flag==-1)
System.out.println("没有此学生信息!!");
}
这两个都是从头开始查呀..都是从第一个元素开始查...直到查到符合的就打印出来吧?
展开
 我来答
光速机枪阿苏
2020-06-19 · TA获得超过183个赞
知道答主
回答量:34
采纳率:0%
帮助的人:2.2万
展开全部

接楼上:准确的来说,你的问题是一个数据结构上的问题.

首先你要区分一下物理上的存储结构 与 逻辑上的数据结构

物理上的存储结构

  • 链式存储结构

  • 顺序存储结构

逻辑上的数据结构

  • 线性数据结构 :单链表 双向链表 循环列表(栈 队列 ...)

  • 树:普通树 特殊树

  • 查找表 : 静态查找表,动态查找表

  • 图:有向图 ...

任何逻辑上的数据结构要在计算机上表示时,都必须根据自己的需求选择一种物理上的存储结构,然后根据逻辑数据结构的特性进行存储等等操作.

对于物理上的存储结构而言

  • 顺序存储结构 : 只要知道基址地址,就可以通过数学计算出任一元素 的地址.

  • 链式存储结构: 上下家不能越级联系,你知道爸爸是谁,但是不知道爷爷是谁,想找爷爷只能通过爸爸.(下一个结点的地址存储在上一个结点中)

这种特性是由于其物理实现决定的,目前暂时看没有办法改变.

回过头来看你的问题中两个关键的概念定义:

  • 链表:以链式存储结构存储的线性表叫做链表

  • 顺序表:以顺序存储结构存储的线性表叫做顺序表  

所以:

顺序表可以随即存取任一元素.而链表在绝大部分情况下都需要遍历查找.

丛丝柳0Ihd64
2012-10-08 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:38.2万
展开全部
准确的来说,你的问题是一个数据结构上的问题,并不是Java语言的问题
其实你的理解方式错了,你不能从编码的角度来考虑顺序表和链表的区别,应该从他们的实现角度来考虑:
1.顺序表在物理上是占用一段连续的内存(必须在内存上是连续的,不能说中间突然断开,这是顺序表与链表的主要区别)。因为我们都知道内存有内存地址,所以顺序表只要知道第一个元素的内存地址,再通过简单的加减就能找到任意一个元素了,所以叫做随机存取;
2.链表在分配存储的时候却很灵活,并不要求连续。但是要如何找到这个元素的下一个元素呢,这时候就再增加一个域来指向下一个元素的地址(这就是为什么它叫做链表的原因,指向下一个元素的指针就想一根一根的链条将整个集合链接起来)。所以链表要找到特定的元素的话,必须要知道上一个元素,再通过上一个元素的指针域找到该元素,以此类推,所以只能从第一个元素开始,一个一个的找,才能找到特定元素。
即兴回答,难免有疏漏和不清楚的地方,希望我表达清楚了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sodrsodr
2012-10-08 · TA获得超过326个赞
知道答主
回答量:75
采纳率:0%
帮助的人:51.2万
展开全部
顺序表就是数组,有数组下标可以直接查到第i个数据
链表只能从第一个数据开始依次查询
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式