软件设计师考试——数据结构与算法基础

考点提要

  1. 数组与矩阵
  2. 线性表
  3. 广义表
  4. 树与二叉树
  5. 排序与查找
  6. 时间复杂度与空间复杂度
  7. 算法基础及常见的算法

一、数组

数组类型 存储地址计算
一维数组a[n] a[i]的存储地址为:a+i*len
二维数组a[m][n] (从0开始) a[i][j]的存储地址(按行存储)为:a + (i*n+j)*len
a[i][j]的存储地址(按列存储)为:a+(j * m+i)*len

二、稀疏矩阵

  1. 上三角矩阵
  2. 下三角矩阵

考试的时候,使用代入的方式进行求解

三、线性表

  1. 顺序表
  2. 链表
    1. 单链表
    2. 循环链表
    3. 双向链表
  3. 链表的基本操作
    1. 单链表删除结点
    2. 单链表插入结点
    3. 双向链表删除结点
    4. 双向链表插入结点
  4. 顺序存储与链式存储对比
    • 空间性能:顺序表的存储比链式表好
    • 时间性能:顺序表的读运算优于链式表;查找、插入、删除,链表性能更好
  5. 队列与栈
    • 队列:先进先出
    • 栈:先进后出
    • 循环队列:队空条件:head = tail;队满条件:(tail + 1) % maxsize = head

四、广义表

  1. 概念:线性表的推广,是由0个或多个单元素子表所组成的有限序列。
  2. 记作:LS = (α1, α2, … , αn)
    α既可以是单个元素,也可以是广义表,分别称为原子和子表。
  3. 深度与长度
    • 深度:广义表展开后所含的括号的最大层数。
    • 长度:广义表中元素的个数。
    • eg:LS1 = (a, (b, c), (d, e)),其长度为3,深度为2.
  4. 基本操作
    • 取表头head(LS)。非空广义表LS的第一个元素称为表头。它可以是一个单元素,也可以是一个子表。
    • 取表尾tail(LS)。在非空广义表中,除表头元素之外由其余元素所构成的表称为表尾。非空广义表的表尾必定是一个表
    • eg:LS1 = (a, (b, c), (d, e)),取出元素b的操作?
      head(head
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Persimmon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值