目录
编辑2.2.2. 完全二叉树:h = (log2(N+1))
以上就是个人学习线性表的个人见解和学习的解析,欢迎各位大佬在评论区探讨!
感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!
1.树概念及结构
1.1树的概念
1.2树的相关概念
1.3树的表示
1.3.1孩子兄弟表示法:
1.3.2双亲表示法:只存储双亲的下标或指针
两节点不在同一树上:
2.二叉树概念及结构
2.1.概念
2.2.特殊的二叉树:
2.2.1.满二叉树:

2.2.2. 完全二叉树:h = (log2(N+1))
2.3.二叉树的性质
2.4.二叉树的存储结构
二叉树一般可以使用两种结构存储,一种顺序结构,一种链式结构。
2.4.1. 顺序存储:
2.4.2.链式存储:
3.二叉树的顺序结构及实现
3.1.二叉树的顺序结构
3.2.堆的概念及结构
3.3堆的实现
向上调整:将儿子节点的下标传递给形参,找到父节点,子节点的值与父节点比较,如果子节点比父亲节点大那么进行交换(建大堆),依次循环判断,遍历结束则说明已经完成大堆的创建。
向下调整:将父亲节点的下标传递给形参,找到儿子点,子节点的值与父节点比较,如果子节点比父亲节点大那么进行交换(建小堆),依次循环判断,遍历结束则说明已经完成小堆的创建。
3.4.堆排序
3.5.TOP--K问题
4.二叉树的链式结构及实现
4.1.前序、中序以及后序遍历
//前序
void FrontOrder(BTNode* root)
{
if (root == NULL)
{
printf("NULL ");
return;
}
printf("%d ", root->val);
FrontOrder(root->left);
FrontOrder(root->right);
}
//中序
void InOrder(BTNode* root)
{
if (root == NULL)
{
printf("NULL ");
return;
}
InOrder(root->left);
printf("%d ", root->val);
InOrder(root->right);
}
//后序
void PostOrder(BTNode* root)
{
if (root == NULL)
{
printf("NULL ");
return;
}
PostOrder(root->left);
PostOrder(root->right);
printf("%d ", root->val);
}
4.2层序遍历
以上就是个人学习线性表的个人见解和学习的解析,欢迎各位大佬在评论区探讨!
感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!