链表是什么意思

 我来答
华源网络
2022-09-27 · TA获得超过5599个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:148万
展开全部
问题一:链表是什么东西 链表是一种有序的列表,链表的内容通常是存储与内存中分散的位置上。
链表的方式有两种1:一种是利用数组结构串连的有序列表。
例如;两个数组,一个存放数据,另一个存放连接的关系。这种缺乏弹性。
2:以动态内存配置的链表,(通常指的链表是一动态内存分配的链表)动态内存配置的链表,
是由许许多多的(node)所链接而成的,每一个结点,包含了数据部分和指向下一个结点的指针(Pointer)。
以动态内存配置的链表,在插入和删除元素的时候,只需要将指针改变指向就可以。
链表和数组一样是一种数据结构,如何使用完全基于你的应用需求。
链表和C++语言本身没有任何联系。很多语言都可以实现链表数据结构。
我讲一下数据和链表的区别有可能帮助你对链表的使用有个感觉。
数组是将元素在内存中连续存放,由于每个元素占用内存相同,所以你可以通过下标迅速访问数组中任何元素。但是如果你要在数组中增加一个元素,你需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果你想删除一个元素,你同样需要移动大量元素去填掉被移动的元素。
链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。比如:上一个元素有个指针指到下一个元素,以此类推,直到最后一个元素。如果你要访问链表中一个元素,你需要从第一个元素开始,一直找到你需要的元素位置。但是增加和删除一个元素对于链表数据结构就非常简单了, 只要修改元素中的指针就可以了。
从上面的比较你可以看出,如果你的应用需要快速访问数据,很少或不插入和删除元素,你就应该用数组;相反, 如果你的应用需要经常插入和删除元素你就需要用链表数据结构了。然后你自己可以想一想什么样的应用用链表合适。
另外,建议你找一本好一点的关于数据结构的书,里面应该关于链表和其上算法的详细介绍。链表本身是一个复杂的数据结构,而且包括很多种类,比如单向链表,双向链表,树,图等,不是一篇文章可以介绍得清楚的。

问题二:列表与链表有什么区别 列表,不清楚。应该说的是表。
表在数据结构中,是表示一种线性关系的数据结构。
链表,应该是链接表 是 表的一种存储结构。
表从存储结构上分为 顺序表和链接表。
顺序表是指在内存中连续存储的数据存储空间,数组。可以用下标访问每一个单元。
链接表是指在内存中不是连续存储而是由指针链连接各个单元的线性存储空间。

问题三:C语言链表中q->next=p;表示什么意思? q-.next=p;
把p的地址赋给q的下一个地址
while (q)
{r=q->next;
q->next=p;
p=q;
q=r; }
把q的下一个地址赋给r;
p的地址赋给q的下一个地址;
q的地址赋给p的地址
r的地址赋给q;
直到q->next的地址为0就结束循环处其实链表要自己多画画就直到怎么回事了

问题四:c链表中 L->是什么 意思????求解?? L是头指针,指向的是头结点或者第一个数据元素结点。由于结点是一个结构体,通过指针引用结构体成员的方法就是L->data或者L->next

问题五:单链表中data是什么意思 这个是c里面的指针用法。 p是一个指针。 p->next 一般表示指向下一个存储单元,就是下一个存储单元的地址信息。 p->data 表示 p这个指针的存储单元中的值

问题六:java里的链表指的是什么?为什么需要链表? java中的 *** 类有很多种,每个都有自己的一些特点,推荐你专门在这方面研究一下,比方Vector,ArrayList,,LinkedList,Hashtable等,
其中你问到的链表,是不是指LinkedList呢?
LinkedList是 *** 类的一种,和其它 *** 类一样都用于存放未知内容和未知长度的数据或者说对象.
由于LinkedList的内部实现是采用链表结构,所以它就取名为LinkedList
当然ArrayList的内部实现是采用数组结构,所以它就取名为ArrayList,呵呵,很好理解吧.
它们就相当于一个容器,跟数据一样,可以存放数据,但数组你必须在一开始就指定它里面的内容是什么类型的,比方你必须 int[] array;
而 *** 类就没有必要,只需要: Vector vector=new Vector();就可以,
至于放里面存放数据就更简单了,它什么都可以放,只要是对象:
String str=hello;
vector.add(str);
Integer i=10;
vector.add(i);
取数据的时候需要做类型强制转换,因为你放的时候没有强制指定类型:
String str=(String)vector.get(0);
String i=(Integer)vecotr.get(1);
其它几种 *** 类也和vector埂用法接近,但有些会有些变化和特点, *** 类是java语言的一个重点学习项目,一定要深入了解,不要光从百度上搜,一定要自己多看书,多做实例. >中有专门的一章重点讲解 *** 类

问题七:链表中p→data++啥意思? 这个是c里面的指针用法。
p是一个指针。
p->next 一般表示指向下一个存储单元,就是下一个存储单元的地址信息。
p->data 表示 p这个指针的存储单元中的值

问题八:C风格的链表是什么意思 单链表就是只有一个节点指针的,就是你只能顺序访问链表中的每一个节点,因为他只包含了指向下一个节点的指针,而双链表就是由两个节点指针变量的,一个指向下一个,一个指向上一个,这样子,你既可以访问上一个节点,也可以访问下一个节点。怎...

问题九:谁能解释一下这个链表指针是什么意思 一个int占四个字节,一个字母是一个字节,所就是说一般情况,temp中只能存四个字母,你的temp中存的如果是abce,那么他的二进制内容是否是: 01100001 01100010 01100011 01100100的形式呢?我这么说对吗?
#include
int main()
{
union {
int temp;
char s[5];
} data;
data.temp=1633837924;
/*
01100001 01100010 01100011 01100100B=1633837924
a b c d
X86机器,是little endian编码,所以,输出是dcba
*/
data.s[4]=0;
printf(s=%s\n,data.s );
getchar();
return 0;
}

问题十:什么叫单链表 数据的连接存储表示又称为连接表。当连接表中的每个结点只含有一个指针域时,则被称为单链表。个人理解其实就相当于用一根线(两个点之间唯一一根),其实就是指针把各个结点连起来的数据存储方式。
参考:《数据结构 C语言描述》.徐晓凯、贺桂英
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式