链表是什么!那个编程语言中有的,和数组有什么区别

如题所述

一、主体不同

1、链表:是一种物理存储单元上非连续、非顺序的存储结构。

2、数组:是有序的元素序列。是用于储存多个相同类型数据的集合。

二、特点不同

1、链表:由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

2、数组:是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。


三、数据顺序不同

1、链表:数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

2、数组:数组中的各元素的存储是有先后顺序的,在内存中按照这个先后顺序连续存放在一起。

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

参考资料来源:百度百科-数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-28
链表

链表概述
链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。

单向链表
单向链表的每个结点中除信息域以外还有一个指针域,用来指出其后续结点,单向链表的最后一个结点的指针域为空(NULL)。单向链表由头指针唯一确定,因此单向链表可以用头指针的名字来命名,例如头指针名为head的单向链表称为表head,头指针指向单向链表的第一个结点。在用C语言实现时,首先说明一个结构类型,在这个结构类型中包含一个(或多个)信息成员以及一个指针成员:

#define NULL 0

typedef int DATATYPE

typedef struct node

{DATATYPE info;

node *next;

}LINKLIST;

链表结构中包含指针型的结构成员,类型为指向相同结构类型的指针。根据C语
言的语法要求,结构的成员不能是结构自身类型,即结构不能自己定义自己,因为这样将导致一个无穷的递归定义,但结构的成员可以是结构自身的指针类型,通过指针引用自身这种类型的结构。

链表的每个结点是lINKIST结构类型的一个变量。例如定义了个链表的头指针head
和两个指向链表结点的指针p,q:

LINKLIST *head,*P,*q;

根据结构成员的引用方法,当p和q分别指向了链表的确定结点后,P->info和p->next分别是某个结点的信息分量和指针分量,LINKLIST结构的信息分量是整型,可以用常规的方法对这两个结点的信息分量分别赋值:

。。。。。。。

参考资料:http://myweb.yzu.edu.cn/toby88/c/cstudy/shenru/jiegou/lianbiao.htm

本回答被提问者采纳
相似回答