为了更好地记录与学习嵌入式,每周一结简略的记录每周学习的知识,以便融会贯通。
顺序表
(1)顺序并且连续存储,访问方便
(2)大小固定
(3)表满不能存,表空不能取
优点:访问方便
缺点:插入和删除不方便,需要移动元素
链表
链表的分类:
有没有头结点:
带头结点的链表和不带头结点的链表
一般使用的是带头结点的链表
指针域是双向还是单项
单项链表和双向链表
尾结点是否指向头结点:
循环链表和不循环链表
链表的特点:
(1)申请的空间可以不连续:在链表节点的指针域存有下一个节点的地址
(2)链表访问不方便
(3)插入、删除不需要移动元素,比较方便:修改要插入位置之前节点的指针域即可
双向链表
双向链表与链表的区别在于:节点的数据域前后均有指针域分别指向前后节点
栈
栈的特点:
1、先进后出
2、只允许在栈顶进行操作
队列
1、先进先出
2、只允许在对头删除,队尾插入
通常会以用两个栈模拟对列为考点
树
满足树的条件:
1、有且仅有一个根节点
2、其余的节点可以分为m个互不相交的有限集合
概念:
度数:一个节点的子树的个数称为该节点的度数,一棵树的度数是指该树种节点的最大度数
深度:树的深度为树的最大层数
边数:从根节点到最远节点的最短路径
完全二叉树:对满二叉树从右到左,从下到上依次去掉节点的树
遍历二叉树:
1. 前序遍历:根左右
2. 中序遍历:左根右
3. 后序遍历:左右根
最优二叉树(赫夫曼树)
节点权值与路径长度乘积之和最小的二叉树