大家可能都知道,线性结构是有序数据元素的一个集合,那么是否清楚二叉树是不是线性结构呢?下面有兴趣的朋友们可以跟小编一起来瞧瞧看哦。
二叉树其实是链式存的储结构:
就是二叉树的每个结点最多有子节点,所以为每个结点设计了一个数据域和两个指针域,我们通常将其称之为二叉链表。
二叉链表的结点结构定义代码如下所示:
typedef char TElemType; typedef struct BinaryTreeNode{ TElemType data; //lchild指向左结点的指针 //rchild指向右结点的指针 struct BinaryTreeNode *lchild,*rchild; } BinaryTreeNode,*BinaryTree;
那么线性结构作为最常用的数据结构呢,其特点就是数据元素之间存在一对一的线性关系。
线性结构是拥有两种不同的存储结构的,就是顺序存储结构和链式存储结构。顺序存储的线性表也被称为顺序表,顺序表中的存储元素其实是连续的,链式存储的线性表称为链表,而且链表中的存储元素不一定是连续的,元素节点中会存放数据元素以及相邻元素的地址信息的。
线性结构中是存在两种操作受限的使用场景的,就是说的队列和栈。栈的操作的话就只能在线性表的一端进行,这就是我们常说的先进后出,队列的插入操作在线性表的一端进行了而其他操作在线性表的另一端进行的,先进先出,但是由于线性结构存在两种存储结构的,因此队列和栈是各存在两个实现方式的。
可以这样说,线性就是线性,顺序就是顺序,线性是指逻辑结构,顺序是储存结构,这两个不是一个概念。线性就是指一个节点只有一个子节点,而树,或者说二叉树一个节点后有多个子节点,且子节点是不能相互联系的。
那么以上就是本篇文章的所有内容了,还想了解更多java常见问答信息,记得关注本站消息,获取更多精彩内容。
推荐阅读: