二叉树编程考点

Posted 樱桃挚爱丸子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树编程考点相关的知识,希望对你有一定的参考价值。

1、二叉查找树的类型定义

typedef int DataType;				//结点关键码的数据类型
typedef struct node
{
	DataType data;				//结点的数据值
	struct node * lchild, *rchild;		//指向左、右子女结点的指针
}BiTNode, *BiTree;

注意:BiTNode 等价于 struct node;*BiTree 等价于  struct node*。

2、判别给定的二叉树是否是二叉查找树

void binSearchTree (BiTNode *t, BiTNode * & pr, int & bs)			
{
	//t赋予根结点指针root,pr赋予NULL,bs赋予1
	//t为当前子树根结点
	//pr是当前子树根结点t的前驱指针
	if(t != NULL && bs)
	{
		binSearchTree (t->lchild, pr,bs);				//递归到左子树判断
		if(pr == NULL)
		{
			pr = t; bs = 1;
		}
		else
		{ 
			if(t->data > pr->data)
			{
				pr = t; bs = 1;
			}
			else 
				bs = 0;
		}
		if(bs)
			binSearchTree (t->rchild, pr,bs);		     //递归到右子树判断
	}
				
}  

注意:

  1、因为当前子树根结点t的前驱指针的值一直在改变,故采用的是指针的引用形式

  2、指针的引用,相当于传递的是: 指针的指针,这样指针的数值是可以改变的;而单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的 (示例)——简单讲:*&指针本身可变;  **指针本身不变,仅指向的内容可变        

fun(int * pA); // pA的数值在函数返回后不会变化 
fun(int*& pA); // pA的数值在函数返回可能会发生变化,如果fun函数内部对pA赋值的话

void InitStack(LNode*& HS) 
{ 
HS = NULL; // 函数返回后,HS就是NULL了 
} 

void InitStack(LNode* HS) 
{ 
HS = NULL; // 函数返回后,HS依然是传递进来的数值 
}

  

 

以上是关于二叉树编程考点的主要内容,如果未能解决你的问题,请参考以下文章

直击网申系列直播:数据结构高频考点之二叉树二分搜索树二叉堆

编程实现以上二叉树中序遍历操作,输出遍历序列,求写代码~~

华为OD机试真题 Python 实现二叉树的广度优先遍历

专业课考点参考

全网最全计算机二级C语言知识总结,还不快来白嫖

全网最全计算机二级C语言知识总结,还不快来白嫖