数组,链表,二叉树,这些是为了解决什么问题而出
数据结构,用于根据实际情况选择最合适的结构来提高处理速度。
对于查找多插入删除少的用数组
插入删除多,查找少的用链表
二叉树也可用于查找多的存储,查找速度相当于二分法,插入删除的速度没链表快。
在什么情况下用指针?树,链表能给解释一下吗?
森林转化为二叉树的方法如下:
1、先把每棵树转换为二叉树;
2、第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点的右孩子结点,用线连接起来。当所有的二叉树连接起来后得到的二叉树就是由森林转换得到的二叉树。
将一棵树转换为二叉树的方法是:
1、树中所有相邻兄弟之间加一条连线。
2、对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。
3、以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。
由于树中每个结点可能有多棵树,则可用多重链表,即每个结点有多个指针域,其中每个指针指向一棵子树的根结点。
把每个结点的还结点排列起来,看成一个线性表,且以单链表作为存储结构,则n个结点有n个孩子链表(叶子的孩子链表位空表)。而n个头指针又组成一个线性表,为了便于查找,可采用顺序存储结构。
森林转化为二叉树其目的是为了便于计算,树的孩子兄弟链表表示法和二叉树链表表示法,本质是一样的,只是解释不同,也就是说树(树是森林的特例,即森林中只有一棵树的特殊情况)可用二叉树唯一表示,并可使用二叉树的一些算法去解决树和森林中的问题
指针是一个指向问题,他没有实在的空间地址来储存内容,所以他要指向一个有内容的地方,或者在函数传递时候,你需要改变某些传递进来的变量的值,当你知道这个变量的地址的时候,你就可以直接改变这个地址的值,在函数外就可以获取到了。例子:scanf,就需要你传递变量的地址(指针)。
树和链表你需要解释什么?你还是先理解指针再说吧
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!