学习记录——day17 数据结构 树

树形结构的相关概念

树形结构:表示数据元素之间存在一对多的关系

树:树:是由一个根结点个多个子树构成的树形结构

节点:就是树中的数据元素

父节点:当前结点的直接上级节点

孩子节点:当前结点的直接下级节点

祖先节点;当前结点的直接或间接上级节点

子孙节点:当前结点的直接或间接下级节点

兄弟节点:拥有相同父结点的所有节点互称为兄弟节点

堂兄弟节点:其父结点在同一层的所有节点,互为堂兄弟节点

根结点:没有父结点的节点

叶子节点:没有子节点的节点称为叶子节点

分支节点:节点的度不为0的节点叫分支节点

节点的度:就是当前结点的孩子节点个数,就称为节点的度

树的度:就是树中节点的度的最大值

节点的层次:从根结点开始到当前结点所经历的层数称为该节点的层次

树的层次:输出节点的层次的最大值

二叉树

二叉树相关概念

二叉树:由根结点和最多两个子树组成,并且严格区分左右子树的树形结构

左子树:由当前结点的左孩子节点为根结点构成的二叉树

右子树:由当前结点的右孩子节点为根结点构成的二叉树

满二叉树:二叉树的最后一层全是叶子节点,在没有添加层数的条件下,不能在向该树中增加节点                   的树(除了最后一层为叶子节点外,其余层中的节点的度全为2)

完全二叉树:在一棵满二叉树的基础上,最后一层自右向左逐渐减少节点的二叉树

二叉树的状态

二叉树性质

在二叉树的第i层上最多有 2^(i-1)个节点

在二叉树的前n层最多有 2^n-1个节点

在二叉树中,叶子节点的个数,总比度为2的节点个数多 1

假设:    n0:表示度为0的节点总个数
          n1:表示度为1的节点总个数
          n2:表示度为2的节点总个数
    总度数 = 总结点数据 -1;
    总度数 = 0*n0 + 1*n1 + 2*n2;
    总结点 = n0 + n1 + n2;
    _____________________________________
    n2    =   n0 - 1;
 

在二叉树上,如果第i个节点存在左孩子,那么其左孩子一定是第 2~i个节点,如果存在右孩子,那么定是第2*i+1个节点

二叉树的存储->nextday

模拟面试

typedef 定义函数指针的方式

typedef int (*a)(int)

对 void* 的理解及相关应用

万能指针 可以接收任意类型的指针 

一般用于函数的形参  方便接收和发送  使用时必须强转为对应指针  不能对万能指针直接引用

static修饰局部变量的作用

被修饰的局部变量,存储在静态区,生命周期延长至程序结束,但作用域没有改变

C语言中什么是野指针

指向非法内存的指针

产生的情况有:

未初始化     

随进程的进行原本指向的内存被释放了     

数组下标越界       

函数返回的是生命周期较短的变量,返回时内存被释放了

数据结构中,栈和队列的区别

都是操作受限线性表,属于线性结构

栈是先进后出,插入删除是同端进行

队列是先进先出,插入删除是不同端进行

这也是受限的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值