❶ 线性结构和非线性结构数据结构
线性结构和非线性结构
线性结构
l 线性结构作为最常用的数据结构.其特点是数据元素之间存在一对一的线性关系 。
2 线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表) . 顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。
3 链式存储的线性表称为链表,链表中的存储元素不一定是连续的.元素节点中存放数据元素以及相邻元素的地址信息。
4 线性结构常见的有:数组、队列、链表和栈,后面我们会详细讲解。
非线性结构
二维数组,多维数组,广义表,树结构,图结构
❷ 二叉树是非线性数据结构,所以
二叉树是非线性数据结构,所以(C、它能采用顺序存储结构和链式存储结构存储)。
一般而言,完全二叉树(包括满二叉树)使用顺序存储,普通二叉树一般用二叉链表或者三叉链表存储。
二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。
(2)非线性的数据结构用什么存储扩展阅读:
若对一棵有n个节点的完全二叉树进行顺序编号(1≤i≤n),那么,对于编号为i(i≥1)的节点:
当i=1时,该节点为根,它无双亲节点。
当i>1时,该节点的双亲节点的编号为i/2。
若2i≤n,则有编号为2i的左节点,否则没有左节点 。
若2i+1≤n,则有编号为2i+1的右节点,否则没有右节点。
❸ 堆(heap)和栈(Stack)的区别是什么为什么平时都把堆栈放在一起讲
将堆跟栈放在一起将是因为两者都是存储数据的方式。区别如下:
一、主体不枣扮同
1、堆:是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。
2、栈:又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。
二、特点不同
1、堆:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。
2、栈:是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶。
三、作用不同
1、堆:堆是非线性数据结构,相当于一维数组,有两个直接后继。
2、栈:可以用来在函数调用的时候存储断点,做递归时要用到栈。
❹ 计算机有哪些存储结构
在计算机中存储和组织数据的方式被称之为数据结构,链表和数组是较为常见的两种结构。
1、数组
数组就像一个个紧挨着的小格子,每一个格子都有它们自己的序号,这个序号被称之为“索引”。与生活中不太相同的是,平时计数习惯以“1”开始,而在计算机中,“0”是开头的第一个数字。
数组中的数据,在计算机的存储器中,也是按顺序存储在连续的位置中。当我们寻找需要的数据时,通过格子中的索引,便可以找到数据。
2、链表
链表的存储方式有些像地址和住宅的关系,地址可以写在一张纸上,但是这并不代表住宅也紧密相邻。链表中的数据在计算机中也是分散地存储在各个地方,但是链表里面除了存储数据,还存储了下一个数据的地址,以便于找到下一个数据。
与数组不同的是,链表储存数据不像数组一样,需要提前设定大小,就像火车的车厢长度是随着乘客的数量而增加的。
(4)非线性的数据结构用什么存储扩展阅读
数据的链式存储结构可用链接表来表示。
其中data表示值域,用来存储节点的数值部分。Pl,p2,…,Pill(1n≥1)均为指针域,每个指针域为其对应的后继元素或前驱元素所在结点(以后简称为后继结点或前驱结点)的存储位置。
通过结点的指针域(又称为链域)可以访问到对应的后继结点或前驱结点,若一个结点中的某个指针域不需要指向其他结点,则令它的值为空(NULL)。
在数据的顺序存储中,由于每个元素的存储位置都可以通过简单计算得到,所以访问元素的时间都相同;而在数据的链接存储中。
由于每个元素的存储位置保存在它的前驱或后继结点中,所以只有当访问到其前驱结点或后继结点后才能够按指针访问到,访问任一元素的时间与该元素结点在链式存储结构中的位置有关。