数据结构之大体脉络总结(一)

有时间会详细介绍
1.什么是 数据结构?数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
   数据分为逻辑结构和物理结构。其中:
    逻辑结构是数据元素之间的逻辑关系,包括集合,线性结构(一对一),树形结构(一对多),图形结构(多对多)。
    物理结构是是数据在计算机中的存储方式,包括顺序存储,链式存储,索引存储,散列存储。
2. 线性表:顺序存储,链式存储(单链表,循环单链表,双向链表,静态链表)。
3. 栈和队列(栈和队列应用非常广泛,很常用的存储方式)
   栈特点: 先进后出或后进先出,所有操作都在栈顶进行。
   队列特点:先进先出,数据元素的插入只能在队尾一端操作,删除在队首一端操作。
4.串,数组( 顺序存储按矩阵方式),广义表(广义表中的元素可以是原子项也可以是子表)。
5 .树(二叉数)
 树:一对多关系,非线性结构,树的定义是递归的。
 二叉树:1.分为左子树和右子树,每个结点只能有0,1或2个子结点。
                2.分为顺序存储,链式存储。
                3.二叉树的遍历(递归算法,非递归算法)。
                4.线索二叉树(增加结点的直接前驱或直接后继)。
  树与二叉树之间的转换(通常以孩子兄弟链表表示)。
  哈夫曼树:又称最优二叉树,是一类带权路径最短的树。注:这里的权指叶子结点的权值
  哈夫曼树的构造算法
            (1) 从叶子结点中选取两个权值最小和次小的结点作为左右子树
            (2) 将这两个权值的和与剩余的结点权值作比较按(1)方法执行
            (3)直到根结点结束
哈夫曼编码:(1)构造哈夫曼树
                      (2)将哈夫曼树从上到下从左到右顺序,左子树0,右子树1,根据路径得到叶子结点的编码

6. 图:分为有向图,无向图,网(带权图)。
有向图:出度(指向其他结点的弧树),入度(进入这个顶点的弧树)
图的存储结构:邻接矩阵(按行读有关的是1,无关就是0)
                         邻接表(对图中每个顶点都建立单链表)
图的 遍历:深度优先搜索(以邻接表存储,从顶点V0出发,并做标记访问,搜索顶点的邻接表;访问第一个未被访问的顶点V1,然后继续搜索V1的邻接表,直到全部访问)
                  注:如邻接表中已全部访问则返回上一级邻接表中继续查找
                  广度优先搜索(以队列方式实现,访问并删除队首结点V0,搜索链表,让所有的未被访问的结点依次入队;访问并删除队首结点V1,然后搜索,将未被访问的结
                  点依次入队,直到所有的邻接点都被访问)。
最小生成树:网中所有生成树中权值总和最小的生成树
(1)Prim(普里姆)算法:对顶点操作
        从顶点V0出发,找出权值最小的边的顶点V1;再找出与顶点V0,V1权值最小的边的顶点,依次类推直到找完所有的顶点
         注:图中不能存在回路
 (2)Kruskal(克鲁斯卡尔)算法:对边操作
     将图中所有顶点排放好,找权值最小的边连线,在有连线的顶点中继续找权值最小的边,直到连完所有顶点
    注:图中不能有回路
拓扑排序-在工程应用领域中
   作用:解决工程之间在时间上的制约关系
    算法:(1)选一个入度为0的顶点输出
              (2)将该结点所有后继顶点的入度减1
              (3)重复(1)(2)两步直到输出所有结点或找不到入度为0的结点
          注:针对于有向无环图,输出顺序取决于算法实现方式(栈,队列),但用栈处理较方便
关键路径-对工程所需时间的估算
关键路径也是最长路径:完成整个工程所需要的最少时间是源点(入度为0的点)到汇点(出度为0的点)之间的最长路径。
最短路径:Dijkstra(迪杰斯特拉)算法


今天就先写到这里啦微笑

        
          
 



 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值