zoukankan      html  css  js  c++  java
  • 软考笔记第六天之数据结构与算法基础(一)

    数组

    数组类型 存储地址计算
    一维数组a[n] a[i]的存储地址是:a+i*len
    二维数组a[n][m]

    a[i][j]的存储地址是:

    按行存储:a+(i*m+j)*len

    按列存储:a+(j*n+i)*len

     

     

     

     

     

    例:已知5行5列的二维数组a中的各元素占2个字节,求元素a[2][3]按行优先存储的存储地址?

    a+(2*5+3)*2=a+26

    稀疏矩阵

     

    数据结构:

    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

    通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往和高效的检索算法和索引技术有关。

    数据逻辑结构:

    线性结构,非线性结构(树,图[有环路])

     

     

    树:

    二叉树遍历

    前序遍历(根,左,右)

    中序遍历(左,根,右)

    后序遍历(左,右,根)

    层次遍历(第一层,第二层...)

    前序遍历:1,2,4,5,7,8,3,6

    中序遍历:4,2,7,8,5,1,3,6

    后序遍历:4,8,7,5,2,6,3,1

    层次遍历:1,2,3,4,5,6,7,8

    反向构造二叉树(已知两种序列,画出二叉树)

    普通树转二叉树(孩子结点-左子树结点,兄弟结点-右孩子结点)

    查找二叉树

    二叉排序树(左孩子小于根,右孩子大于根)

     最优二叉树(哈夫曼树)

    构造最短的带权路径的树

    线索二叉树:

    使遍历更加快捷

    绿线指向前驱结点,红线指向后驱结点

    平衡二叉树

     

     

  • 相关阅读:
    增强遍历和Object多参数遍历
    Git忽略规则(.gitignore配置)不生效原因和解决
    算法基本概念及常用算法Python实现
    使用GitBook编写项目文档
    Python 闭包
    Linux 进程管理
    Kafka 安装及入门
    IP地址0.0.0.0表示什么
    Docker 入门
    Docker Linux下安装
  • 原文地址:https://www.cnblogs.com/pushudepu/p/5955351.html
Copyright © 2011-2022 走看看