软件设计师教程

软件设计师教程(一)计算机系统知识-计算机系统基础知识
软件设计师教程(二)计算机系统知识-计算机体系结构
软件设计师教程(三)计算机系统知识-计算机体系结构
软件设计师教程(四)程序设计语言基础知识


数据结构

  • 软件设计师教程
  • 线性结构
    • 线性表
      • 线性表的定义
      • 线性表的存储结构
    • 栈和队列
      • 队列
  • 数组、矩阵和广义表
    • 数组
    • 矩阵
    • 广义表
    • 树与二叉树的定义
    • 二叉树的性质与存储结构
    • 二叉树的遍历
    • 线索二叉树
    • 最优二叉树
    • 树和森林

线性结构

一种基本的数据结构,就是排排站,一个接一个。

线性表

线性表的定义

除了第一个、最后一个元素,序列中的每个元素均只有一个直接前驱,和一个直接后驱。第一个、最后一个元素都是明确定义好的。

线性表的存储结构

  1. 顺序存储—数组
  2. 链式存储—链表

栈和队列

栈—后进先出
队列—先进先出
就是指定存储的队列,进的口子和出的口子,也只能从这两个口子加元素出元素。

栈只能访问其一端来实现数据存储和检索的线性数据结构,先进后出。

栈的空间容量有限,应用就是表达式求值、括号匹配等,讲递归过程转变为非递归过程的处理。

队列

只允许在一端插入元素,另一端删除元素。先进先出。

队列有两个指针,一个是队头还有一个是队尾。应用就是需要排队的场合,打印队列、离散时间的计算模拟等等。

仅有字符构成的有限序列,线性表。
串衍生出一些匹配算法。

数组、矩阵和广义表

数组

n n n维数组是一种“同构”的数据结构,其每个数据元素类型相同、结构一致。

矩阵

节省存储空间的情况下使矩阵的各种运算能高效地进行。

  1. 特殊矩阵 ⇒ 对称矩阵、三角矩阵和对角矩阵等等
  2. 稀疏矩阵 ⇒ 用三元组表表示 (行号、列号、值)

广义表

0个或多个单元素或子表组成的有限序列。不常用,我觉得用字典可以完美替代

描述客观世界中广泛存在的层次结构关系

树与二叉树的定义

树就是一堆结点的有限集合,除了空树,有且仅有一个称为根的结点,其余结点就可以分为互不相交的有限子集。其中每个有限子集又都是一棵树,称为根结点的子树

二叉树就是每颗子树最多分出两个分支,由于对称性,所以可以做一些递归算法等等。

二叉树的性质与存储结构

二叉树第 i i i ( i ⩾ 1 ) (i\geqslant 1) (i⩾1) 最多有 2 i − 1 2^{i-1} 2i−1 个结点
高度为k的二叉树最多有 2 k − 1 2^k-1 2k−1结点, ( k ⩾ 1 ) (k\geqslant 1) (k⩾1)

可以用三叉链表或二叉链表来存储二叉树,链表的头指针指向二叉树的根结点。

二叉树的遍历

先序、中序、后序,还有层序遍历

线索二叉树

每个结点多了前驱、后继。将先、中、后的遍历顺序固定下来了。

最优二叉树

哈夫曼树 所有叶子结点的带权路径长度之和最小的树。

构造算法是用全值最小的两个结点合成一个新的结点,这样不断地递归就好了。

树和森林

树的存储有双亲表示法、孩子表示法和孩子兄弟表示法。

C 图 邻接表的基本操作

九大内部排序汇总

软件设计师教程(五)计算机系统知识-数据结构相关推荐

  1. 软件设计师学习1——计算机系统知识

    1.计算机的基本硬件系统由运算器.控制器.存储器.输入设备和输出设备五大部件组成.运算器.控制器等部件被集成在一起统称为中央处理单元. 2.CPU的功能:程序控制,操作控制,时间控制,数据处理. 3. ...

  2. 软件设计师教程(九)计算机系统知识-软件工程基础知识

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)计算 ...

  3. 软件设计师教程(十三)计算机系统知识-软件系统分析与设计

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)计算 ...

  4. 软件设计师教程(二)计算机系统知识-计算机体系结构

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 计算机体系结构 软件设计师教程 计算机体系结构的发展 计算机系统结构概述 计算机体系结构分类 指令系统 指令集体系结构的分类 C ...

  5. 软件设计师教程(四)程序设计语言基础知识

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 程序设计语言知识 软件设 ...

  6. c语言综合知识,软件设计师教程综合知识集锦之C语言编程风格

    2016下半年软考软件设计师报名已经陆续开始了,同学们要开始备考了哦,希赛小编为打算参加下半年考试的你们准备了一些软件设计师教程综合知识集锦,希望对大家有所帮助. C语言的编程风格 缩进格式 Tab是 ...

  7. 软件设计师教程中常用公式汇总

    前言,本文章所有内容均摘录自<软件设计师教程(第5版)> 第1章 计算机系统知识 1.1机器字长为n时各种码制表示的带符号数的范围 码制 定点整数 定点小数 原码 −(2n−1−1)∼+( ...

  8. 《软件设计师教程》阅读小结

    周围同学都是"工程师",像"网络工程师"."数据库工程师"等,整个学校就是"工程师"的聚集地.当然,我也不能落后.于是, ...

  9. 2015年上半年 软件设计师 上午试卷 综合知识-2

    2015年上半年 软件设计师 上午试卷 综合知识-2 与算术表达式"(a+(b-c))*d" 对应的树是(21). 答案: B 本题考查程序语言与数据结构基础知识. 对算术表达式& ...

最新文章

  1. 【剑指Offer】23、二叉搜索树的后序遍历序列
  2. centos7安装php5.6版本
  3. ABAP Development Tool IDE里编写的CDS view源代码是如何传递到ABAP后台并解析的
  4. c语言 文件f指针,C语言文件选择题
  5. oKit在项目管理方面能带来哪些好处
  6. 解密Google、百度搜索引擎揭秘
  7. 让我们用心感受泛型接口的协变和抗变out和in
  8. delphi IDE插件 cnpack 使用记录
  9. 求你们不要再问我录屏软件了,这些电脑、手机录屏软件全给你们!
  10. c语言 获取硬盘号,C语言获得硬盘序列号
  11. 定时器 + websocket
  12. 学校开展计算机培训活动,我校举办学生高级领导力专题培训活动
  13. 用批处理的方式压缩文件
  14. java开发微信付款码支付
  15. 网页屏蔽右键,另存功能
  16. Mac查看端口号占用
  17. 赚钱大师小程序【最新版5.9.9】商城/佣金即时提现/分销推广/话费充值/美团饿了么外卖
  18. elasticsearch从入门到入门系列(一)---简单介绍及安装
  19. kafka部署时出现的天坑
  20. 手机怎么把照片调整成二寸?教你一招轻松修改尺寸

热门文章

  1. WEB前端大作业-个人资料展示响应式网页模板(HTML JS CSS)
  2. centos6.7的环境下安装snort、barnyard2和base
  3. 使用VPN代理之后,无法使用Git拉取代码
  4. 打印菱形图案(实心,空心)
  5. 无人超市信息管理系统——问题定义
  6. iOS使用一些特殊键盘时的运行错误解决Can't find keyplane that supports type 4 for keyboard
  7. ruoyi(若依)配置多数据源(mysql+postgresql),rouyi(Springboot)多数据源设置
  8. 网页视频下载(TS流下载合成)
  9. 关于PPP协议 用来干嘛的?每个协议应当都有自己的用途。
  10. 非常好用的数据建模工具erwin data modeler