正在加载图片...
《数据结构》实验指导/实验六:二叉树的存储及操作 3 ∥p为二叉树的根结点 已建立二叉树根结点 case 1: St top Child= p; break; 2: St top) rchild=p; bi reak: public int BTNode height 二叉树高度的算法 return BTNodeHeightI(r); private int BTNodeHeightI(BTNode t) ∥被 BTNodeheight方法调用 nt lchild, rchildh return 0; ∥树的高度为0 Achild= BTNode heigh(hid;/求左子树的高度为 Achild lchild= BTNode Height(t rchild);/求右子树的高度为 rchildh return(Ichildh >rchildh)?(childh+1): (rchildh+1); ∥-叉树的遍历算法 public string Pre Ordero ∥先序遍历的递归算法 PreOrder(r); return btst private void Pre Orderl(bTNode t) 被 PreOrder方法调用 if(t! = null) ∥问根结点 PreOrder(t Child) 先序遍历左子树 PreOrderl(t rchild) ∥先序遍历右子树 管理科学与工程学科/共6页第3页《数据结构》实验指导 / 实验六:二叉树的存储及操作 3 管理科学与工程学科 / 共6页,第3页 r = p; //*p 为二叉树的根结点 else //已建立二叉树根结点 { switch (k) { case 1: St[top].lchild = p; break; case 2: St[top].rchild = p; break; } } break; } j++; } } public int BTNodeHeight() //求二叉树高度的算法 { return BTNodeHeight1(r); } private int BTNodeHeight1(BTNode t) //被 BTNodeHeight 方法调用 { int lchildh, rchildh; if (t == null) return 0; //空树的高度为 0 else { lchildh = BTNodeHeight1(t.lchild); //求左子树的高度为 lchildh rchildh = BTNodeHeight1(t.rchild); //求右子树的高度为 rchildh return (lchildh > rchildh) ? (lchildh + 1) : (rchildh + 1); } } //------------二叉树的遍历算法-------------------------------------- public string PreOrder() //先序遍历的递归算法 { btstr = ""; PreOrder1(r); return btstr; } private void PreOrder1(BTNode t) //被 PreOrder 方法调用 { if (t != null) { btstr += t.data.ToString() + " "; //访问根结点 PreOrder1(t.lchild); //先序遍历左子树 PreOrder1(t.rchild); //先序遍历右子树
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有