procedure insert_child (P:node;E:elemtype); (This procedure is defined for constructing trees in a top-down manner. B A node containing element E will be created and it will be made the right-most child of node P * procedure delete (var T:tree); B (This procedure deletes all the nodes of the tree T,and T will be made an empty tree.The tree T should not be a subtree of another tree * procedure assign(T1:tree;var T2:tree); (This procedure copies the entire tree T1 and asigns it to T2 * S/B 你能够从你的判断中得到一个一般 性的规律吗: 当你定义一个数据结构时,哪些操 作是必须的,哪些操作是特定的?
B B S/B 你能够从你的判断中得到一个一般 性的规律吗: 当你定义一个数据结构时,哪些操 作是必须的,哪些操作是特定的?
你有没有感觉到,在树这样的数据结构中,递 归如呼吸般自然? ways.These are known as tree walkings or tree traversals.In a tree with the root N and subtrees T1,T2,...,Tn we define: pre-order traversal:visit the root node N,then visit all the nodes in T in pre-order,then visit all the nodes in T2 in pre-order, and so on until all the nodes in Tn are visited in pre-order. post-order traversal:visit the nodes of T1,T2,...,Tn in post-order (in that order);then visit the root node
你有没有感觉到,在树这样的数据结构中,递 归如呼吸般自然?
将一棵树赋值给另一棵树,原来也很简单 procedure assign(T1 tree;var T2:tree); var P,Q:tree; begin if T1 nil then T2 :ni1 else 你的第一想 begin 法是循环还 assign(T1T.left_most,P); assign(Tlf.right_sib,Q); 是递归? new(T2); 你最终的做 T21.element :T1f.element; 法是循环还 T21.left_most :P; 是递归? T2↑,right._sibt=Q end end;
将一棵树赋值给另一棵树,原来也很简单 你的第一想 法是循环还 是递归? 你最终的做 法是循环还 是递归?
你能从下图的一般的树的链表实现中,设计一 个二叉树的链表实现吗? type node inode_cell node_cel】=record element elmtype, element left_most,right_sib node end; tree÷node; left_most right_sib B ©-o·□形 777
你能从下图的一般的树的链表实现中,设计一 个二叉树的链表实现吗?