数据结构与算法——C语言和Java语言描述 ppt及答案和其他资源7-2二叉树的建立.pptxVIP

  • 2
  • 0
  • 约1.01千字
  • 约 11页
  • 2019-05-07 发布于广东
  • 举报

数据结构与算法——C语言和Java语言描述 ppt及答案和其他资源7-2二叉树的建立.pptx

7.2.3.二叉树的性质; 对于一棵有n个结点的完全二叉树,按照从上至下和从左至右的顺序对所有结点从0开始顺序编号,则对于序号为i的结点(0≤i n),有: (1)如果i=1,则结点i是根结点,无双亲。 (2)如果2i<n ,其左孩子是结点2i;如果2i≥n,则结点i无左孩子。 (3)如果2i+1<n,其右孩子是结点2i+1;如果2i+1≥n,则结点i无右孩子。;B; 对于一般的非完全二叉树显然不能直接使用二叉树的顺序存储结构。可以首先在非完全二叉树中增添一些并不存在的空结点使之变成完全二叉树的形态,然后再用顺序存储结构存储。 ;B;1.二叉树遍历的基本方法;前序遍历(DLR)递归算法为: 若二叉树为空则算法结束;否则: (1)访问根结点; (2)前序遍历根结点的左子树; (3)前序遍历根结点的右子树。 对于如图所示的二叉树,前序遍历访问结点的次序为???A B D F C E G;中序遍历(LDR)递归算法为: 若二叉树为空则算法结束;否则: (1)中序遍历根结点的左子树; (2)访问根结点; (3)中序遍历根结点的右子树。 对于图7-7(b)所示的二叉树,中序遍历访问结点的次序为:B F D A E G C;后序遍历(LRD)递归算法为: 若二叉树为空则算法结束;否则: (1)后序遍历根结点的左子树; (2)后序遍历根结点的右子树; (3)访问根结点。 对于如图所示的二叉树,后序遍历访问结点的次序为:F D B G E C A; //以先根遍历创建二叉树,AB#D##C## void Creat(BiTree *bt) { Elemtype ch; printf(请输入字符AB#D##C##:); scanf(%c,ch); getchar(); if(ch==#) *bt=NULL; ;else { *bt=(BiTree)malloc(sizeof(btNode));//分配根节点 if(!*bt) {printf(分配节点失败\n);exit(0);} (*bt)-data=ch; Creat((*bt)-lchild); Creat((*bt)-rchild); } }

文档评论(0)

1亿VIP精品文档

相关文档