⑴ 数据的存储结构可以用什么和什么
数据的存储结构可以用集合、线性结构、树形结构和图形结构,具体如下:
(1)集合:数据结构中的元素之间除了“同属一个集合”的相互关系外,别无其他关系;
(2)线性结构:数据结构中的元素存在一对一的相互关系;
(3)树形结构:数据结构中的元素存在一对多的相互关系;
(4)图形结构:数据结构中的元素存在多对多的相互关系。
常用运算:
(1)检索。检索就是在数据结构里查找满足一定条件的节点。一般是给定一个某字段的值,找具有该字段值的节点。
(2)插入。往数据结构中增加新的节点。
(3)删除。把指定的结点从数据结构中去掉。
(4)更新。改变指定节点的一个或多个字段的值。
(5)排序。把节点按某种指定的顺序重新排列。例如递增或递减。
以上内容参考:网络-数据结构
⑵ 树形结构存储方法
一般都是加一个父节点的字段。 不过关联查询还是挺麻烦的,oracle的话还好点
⑶ 对于树形结构的数据进行查询
树形结构的话按照算法分析的原理,是先查询父节点,然后查询器父节点的左子树(也就是句柄)然后在查询句柄的句柄。。还有你的问题我不清楚,你到底是想问什么。。你可以看看算法分析
⑷ 文档型数据库设计模式:如何存储树形数据
在数据库中存储树形结构的数据,这是一个非常普遍的需求,典型的比如论坛系统的版块关系。在传统的关系型数据库中,就已经产生了各种解决方案。 此文以存储树形结构数据为需求,分别描述了利用关系型数据库和文档型数据库作为存储的几种设计模式。 A.关系型数据库设计模式1idnameparent_id1ANULL2B13C14D2 上图表示了传统的设计方法之一,就是将树形结构的每一个结点作为关系型数据库中的一行进行存储,每一个结点保存一个其父结点的指针。 优点:结构简单易懂,插入修改操作都很简单 缺点:如果要获取某个结点的所有子结点,将是一件很恶心的事 B.关系型数据库设计模式2idnameparent_ 上图在模式1的基础上多了两列,left和right,相当于btree中的左右分支,分别存储了左右分支结点的最大值和最小值。 优点:要查找一个结点的子结点很容易,只需要做一个范围查询就行了(比如B节点的子结点,只需要查询 id >=2 && id<=5) 缺点:由于树结构存在在这里面了,所以添加或修改已存在结点将可能产生连锁反应,操作过于复杂 C.文档型数据库设计模式1 { "name": "A", "children": [ {"name": "B", "children": [{"name": "D"}]}, {"name": "C"}]} 将整个树结构存成一个文档,文档结构既树型结构,简明易懂。
⑸ 怎样在 MySQL 表中存储树形结构数据
一般比较普遍的就是四种方法:(具体见 SQL Anti-patterns这本书)
Adjacency List:每一条记录存parent_id
Path Enumerations:每一条记录存整个tree path经过的node枚举
Nested Sets:每一条记录存 nleft 和 nright
Closure Table:维护一个表,所有的tree path作为记录进行保存。
⑹ 数据结构中树的存储问题
在树结构中有双亲表示法、孩子表示法、孩子兄弟表示法等,其中双亲表示法,属顺序存储结构,孩子表示法、孩子兄弟表示法以属链式存储
⑺ 数据库中如何实现对树形结构的存储
用递归或外部程序组织循环,具体跟你的数据库表结构有关
⑻ 请教如何用数据库保存树形结构的数据
8.文件需要是二进制文件8.定义数据库表结构为struct,里面可以任意定义你要的帐号密码余额。多个的话,定义成链表link.8.写两个函数用来读和写这个文件,序列化操作文件。8.写文件时把struct的内容逐次写入...
⑼ java从数据库中查询数据,存储为树形结构,怎么做
解决方法很多!数据要存储为树形结构,那么数据要有父子关系。
一个父节点有多个子节点,一个子节点又有多个子子节点。
publicclassTreeNode{
/**节点主键**/
privateStringid;
/**节点名称**/
privateStringtext;
/**子节点**/
privateTreeNode[]children;
}
⑽ 数据结构,树的常用存储方式
存入文本文件,每行:孩子节点-父节点。
这样也方便用Hadoop进行处理。