-
叶子(终端节点) 根(非终端节点) 节点深度(节点位置在第n层深度就为n) 树深度(最深的深度N,该树的深度就为n)查看全部
-
搜索节点的函数应该为: Node* Node::searchNode(int index) { if(this->index==index)return this; if(this->pLNode!=NULL) { if(this->pLNode->index==index)return this->pLNode; Node *temp=this->pLNode->searchNode(index); if(temp!=NULL)return temp; /* 如果不加这个判断if(temp!=NULL)而是直接return temp则会导致即使在左子树中没有找到下标为index的节点也会直接返回NULL,而不再进行右子树中的搜索。 */ } if(this->pRNode!=NULL) { if(this->pRNode->index==index)return this->pRNode; Node *temp=this->pRNode->searchNode(index); if(temp!=NULL)return temp; } return NULL; }查看全部
-
树的前中后序遍历不容易,但是节点的前中后序遍历可以使用递归来完成,递归就是在某一函数中调用该函数本身。查看全部
-
链表和数组的一个区别就是链表没有m_iSize这个数据成员,二叉树的链表实现和二叉树的数组实现也有这个区别。因此二叉树的链表实现不用判断要添加的节点的左右孩子是否没有内存,而是应该判断左右孩子是否已经有数据。查看全部
-
如果直接将pNode这个节点挂载到树中,因为pNode是一个临时节点所以用根节点的孩子指针指向它没有什么意义,在addNode这个函数执行完之后,pNode申请的内存就会被回收。查看全部
-
树的前序遍历:根左右; 中序遍历:左根右; 后序遍历:左右根; 可以简单的看头节点0的位置, 在遍历出来的节点的最前面就叫做前序遍历,在遍历出来的节点的中间就叫做中序遍历,在遍历出来的节点的最后面就叫做后序遍历。查看全部
-
头节点的数据域没有任何意义,但是它的指针域指向左孩子和右孩子,初值为NULL。查看全部
-
数组在实例化的时候要先指定内存的大小,即要先说明申请的元素的个数m_pTree=new int[size];而链表在实例化的时候不用关注总内存的大小,只要申请第一个头节点的内存就够了。m_pNode=new Node();查看全部
-
在二叉树中,使用0表示当前位置不存在节点的情况。查看全部
-
非终端的节点都叫做根,而不仅仅只有A一个节点叫做根。可以说在一个树中,一个节点不是根就是叶,不存在根和叶之外的节点,叶就是终端节点,根就是非终端节点。查看全部
-
在树中,一个双亲节点有几个孩子节点,那么这个双亲节点的度就是几。查看全部
-
可以将DeleteNode中的第二个实参定位NULL;省的定义;查看全部
-
"递归就形成了:访问左结点就是访问左子树,访问右结点就是访问右子树"查看全部
-
为什么不判断根据索引找到的结点有没有左右孩子再进行挂载?查看全部
-
二叉树遍历 前中后是对根来说的查看全部
举报
0/150
提交
取消