知识大全 数据结构考研分类复习真题 第六章 答案 (五)[8]
Posted 下标
篇首语:行是知之始,知是行之成。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第六章 答案 (五)[8]相关的知识,希望对你有一定的参考价值。
.[题目分析]本题静态链表中结点是按动态二叉链表的前序遍历顺序存放的 首先对动态二叉链表的二叉树进行前序遍历 填写静态链表的 下标 和data域 再对动态二叉链表的二叉树进行层次遍历 设队列Q 填写静态链表的lchild域和rchild域
typedef struct node //静态链表结点结构 ElemType data; //结点数据 int row lchild rchild ; //下标 左右子女 ponent ponent st[]; //st容量足够大 struct node BiTree t; int idx; qbt; static int num= ; void PreOrder(BiTree bt); // 前序遍历二叉树 填写静态链表的 下标 和data域 if (bt) st[++num] data=bt >data; st[num] row=num; PreOrder(bt >lchild); PreOrder(bt >rchild); int Locate(ElemType x) //在静态链表中查二叉树结点的下标 for (i= ;i<=num;i++) if (st[i] data==x) return (i); void DynaToST (BiTree bt) //将二叉树的动态二叉链表结构转为静态链表结构 int i= ; //i为静态链表st的下标 if (bt!=null) QueueInit(Q); //Q是队列 容量足够大 队列元素是qbt qbt t=bt; qbt idx= ; QueueIn(Q qbt); st[ ] data=bt >data; while(!QueueEmpty(Q)) qbt=QueueOut(Q); //出队列 p=qbt t; i=qbt idx; //二叉树结点及在静态链表中的下标 if (p >lchild!=null) //若左子女存在 查其在静态链表中的下标 填lchild域值 lch=Locate(p >lchild >data) st[i] lchild=lch; qbt t=p >lchild; qbt idx=lch; QueueIn(Q qbt); else st[i] lchild= ; //无左子女 其lchild域填 if (p >rchild!=null) //若右子女存在 查其在静态链表中的下标 填rchild域值 rch=Locate(p > >rchild >data) st[i] rchild=rch; qbt t=p >rchild; qbt idx=rch; QueueIn(Q qbt); else st[i] rchild= ; //无左子女 其lchild域填 //while //结束DynaToST
cha138/Article/program/sjjg/201311/23738相关参考
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[23]
PROCprint(bt:BiTreexy:integer) //将二叉树逆时针旋转度打印xy是根结点基准坐标调用时xy= IFbt<>NILTHEN[print(bt↑rchil
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[19]
intLevel(BiTreebt)//层次遍历二叉树并统计度为的结点的个数 intnum=;//num统计度为的结点的个数 if(bt)QueueInit(Q);QueueIn(Qbt)//
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[47]
.BiThrTreeInSucc(BiThrTreeTp) //在对称序穿线树T中查找给定结点p的中序后继 if(p>rtag==)q=p>rchild; &nb
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[33]
intBTLC(BiTreeTint*c)//对二叉树T的结点计数 if(T) *c++; BTLC(T>lchild&c);//统计左子树结点 BTLC(T>rchi
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[45]
voidInOrderThreat(BiThrTreethrt) //thrt是指向中序全线索化头结点的指针本算法中序遍历该二叉树 p=thrt>lchild; //p指向二叉
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[34]
.intCount(BiTree bt)//非递归遍历求二叉树上的叶子结点个数 intnum=; BiTrees[];//s是栈栈中元素是二叉树结点指针栈容量足够大 whlie(b
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[25]
[题目分析]知二叉树中序序列与后序序列第题以递归算法建立了二叉树本题是非递归算法 voidInPostCreat(ElemTypeIN[]POST[]intlhlh) //由二叉树的中序序列I
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[15]
[题目分析]先序遍历二叉树的非递归算法要求进栈元素少意味着空指针不进栈 voidPreOrder(Bitree bt)//对二叉数bt进行非递归遍历 inttop=;Bitrees[
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[6]
.BiTreeCreat(ElemTypeA[]inti) //n个结点的完全二叉树存于一维数组A中本算法据此建立以二叉链表表示的完全二叉树 BiTreetree; if(i<=n)t
知识大全 数据结构考研分类复习真题 第六章 答案 (五)[4]
.[题目分析]当森林(树)以孩子兄弟表示法存储时若结点没有孩子(fch=null)则它必是叶子总的叶子结点个数是孩子子树(fch)上的叶子数和兄弟(nsib)子树上叶结点个数之和 typedef