数据结构树存储
㈠ 常用数据结构有哪些
数据结构分为8类有:数组、栈、队列、链表、树、散列表、堆、图。数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。
1、数组
数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。例如下面这段代码就是将数组的第一个元素赋值为 1。
2、栈
栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。
3、队列
队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在另一端取出元素,也就是:先进先出。从一端放入元素的操作称为入队,取出元素为出队。
4、链表
链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。
5、树
树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
6、散列表
散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。
7、堆
堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。
8、图
图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
㈡ 数据结构存储一个树
http://blog.sina.com.cn/s/blog_62af06e60100g62f.html
㈢ 数据结构中 树的每一个节点都要存储相同的数据类型的数据吗
不用啊,具体部署编程时可以通过指针指向数据,所以数据类型是可以自己定的。甚至可以使用多态,模板,范式编程
㈣ 数据结构中树的存储问题
在树结构中有双亲表示法、孩子表示法、孩子兄弟表示法等,其中双亲表示法,属顺序存储结构,孩子表示法、孩子兄弟表示法以属链式存储
㈤ 数据结构,建立二叉树的存储结构,先序、中序、后序遍历二叉树(要求任选某一种用非递归算法完成);
后序遍历二叉树(要求任选某一种用非递归算法完成); 3、查询二叉树中指定结点;
㈥ 数据结构,树的常用存储方式
存入文本文件,每行:孩子节点-父节点。
这样也方便用Hadoop进行处理。
㈦ 有关数据结构二叉树存储结构类型的,求助大神解答
图中的第一行是定义了一个叫做DataType的类型就是char类型。 接下来定义了一个叫做BinTNode的二叉树结点类型,它包含一个字符型的数据,还有两个指向左右子树的指针。 第三个定义数据类型是定义了一个指向二叉树节点的指针叫做BinTree。 接下来的一个无返回值的函数f31( ),是一个先正向打印从根结点到最左下角结点的路径,再反向打印一遍此路径。 若二叉树如图中所示,则调用f31(T)的输出结果为: ABDDBA
㈧ 数据结构 二叉树的顺序存储结构
此结构是将二叉树的所有结点,
按照一定的次序,存储到一片连续的存储单元中。
因此,必须将结点排成一个适当的线性序列,
使得结点在这个序列中的相应位置能反映出结点之间的逻辑关系。
这种结构特别适用于近似满二叉树。
在一棵具有n个结点的近似满二叉树中,
我们从树根起,自上层到下层,逐层从左到右给所有结点编号,就能得到一个足以反映整个二叉树结构的线性序列
㈨ 算法与数据结构二叉树的顺序存储代码
1.应该是按照完全二叉树存的吧。这样的话,
2。根节点可以设置为1,(如果设成0的话,以后的所有值-1就可以了)
3,如果一个节点是x它左孩子是2*x,右孩子是2*x+1
4,所有叶子节点是,假设共有K个节点,这样则最后一个有叶子节点的是k/2,所以叶子节点就是[k/2+1,k];
5,顺序输出就可以了。