C语言中.二叉树的顺序存储结构和二叉链表,三叉链表存储结构各自的优缺点及适用场合.以及2叉树的顺序储存结
请问C语言中.二叉树的顺序存储结构和二叉链表,三叉链表存储结构各自的优缺点及适用场合.以及2叉树的顺序储存结构和2叉链表储存结构的相互转换的算法.谢谢...
请问C语言中.二叉树的顺序存储结构和二叉链表,三叉链表存储结构各自的优缺点及适用场合.以及2叉树的顺序储存结构和2叉链表储存结构的相互转换的算法 .谢谢
展开
1个回答
展开全部
链式结构优点都是便于寻址,二叉链表缺点结构性开销随着数据结构的规模变大而变大(尤其是叶子节点都有2个NULL,即损失2*sizeof(ElemType*))
线性结构优点没有结构性开销,缺点个人感觉是插入和删除不够方便?
试用场合估计取决问题规模大小,即空间复杂度和时间复杂度
两个相互转化很简单,只需明白的就是顺序存储中:
当前节点的父节点Parent(CurrentPos) = (CurrentPos - 1) / 2 取下界
左孩子Left(CurrentPos) = 2*CurrentPos + 1
右孩子Right(CurrentPos) = 2*CurrentPos + 2
左兄弟 = CurrentPos - 1
右兄弟 = CurrentPos + 1
转换时只需讲链式存储结构的数据域的数据拷贝到顺序存储结构对应的位置即可
线性结构优点没有结构性开销,缺点个人感觉是插入和删除不够方便?
试用场合估计取决问题规模大小,即空间复杂度和时间复杂度
两个相互转化很简单,只需明白的就是顺序存储中:
当前节点的父节点Parent(CurrentPos) = (CurrentPos - 1) / 2 取下界
左孩子Left(CurrentPos) = 2*CurrentPos + 1
右孩子Right(CurrentPos) = 2*CurrentPos + 2
左兄弟 = CurrentPos - 1
右兄弟 = CurrentPos + 1
转换时只需讲链式存储结构的数据域的数据拷贝到顺序存储结构对应的位置即可
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询