软考中级之数据库系统工程师笔记总结(二)数据结构与算法

简介: 软考中级之数据库系统工程师笔记总结(二)数据结构与算法

二、数据结构与算法

2.1数据结构

数据结构指数据元素的组织形式。

2.2线性表的顺序存储结构

特点是物理位置上的邻接关系来表示结点的逻辑关系,具有可以随机存取表中的任一结点的,但插入删除不方便

2.3线性表的链式存储结构

用一组任意的存储单元来存放线性表的数据元素,链表中的结点的逻辑次序和物理次序不一定相同。

2.4线性表的插入和删除

2.5栈的顺序存储

采用两个顺序栈共享一个数据空间:(先进后出

### 2.6队列

只允许在表的一端插入元素(队尾),另一端删除元素(队头)。(先进先出

2.7子串

子串包含在它的主串中的位置是子串的第一个字符首次出现的位置。

2.8广义表

广义表是线性表的推广,是由零个或多个单元素或子表所组成的有限序列。广义表与线性表的区别在于:线性表的元素都是结构上不可分的单元素,而广义表的元素既可以是单元崇,也可以是有结构的表。

2.9二叉树的性质

二叉树第i层上的结点数目最多为2i-1(i≥1)。

深度为K的二叉树至多有2k-1个结点(k≥1)。

在任意一颗二叉树中,若终端结点的个数为n0,度为2的节点数为n2,则n0=n2+1。

具有n个结点的完全二叉树的深度为

2.10树与二叉树的转换

左孩子不变,其兄弟结点变为左孩子的右孩子;或是将树置保留左孩子结点,其它全删去,然后将各层的兄弟结点连起来。如:

2.11相同遍历

树的前序遍历与二叉树的先序遍历一样;树的后序与二叉树的中序遍历一样。

2.12散列

散列就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值,如此建立的表为散列表,散列表是可以动态创建的。

2.13二分查找

二分查找(折半查找):要求关键字必须采用顺序存储结构,并且必须按关键字的大小有序排序。

2.14查找二叉树

查找二叉树(二叉排序树)——动态查找表:或者为空树或者满足:

查找树的左右子树各是一颗查找树。

若查找树的左子树非空,则其左子树上各节点的值均小于根结点的值。

若查找树的右子树非空,则其右子树上各节点的值均大于根结点的值。

平衡二叉树:或者是空树,或者是满足:树中任一节点左右子树的深度相差不超过1。结点的平衡度:其右子树的深度减去左子树的深度(因此平衡度只能为1,0,-1)。

2.15有向图中所有顶点的出度数之和

有向图中所有顶点的出度数之和等于入度数之和。

2.16图中边数

在图中,边数等于所有顶点的度数之和的一半。

2.17顶点和边数

2.18长度

C语言中,struct中各成员都占有自己的内存空间,总长度为所有成员的长度之和,而union中的长度等于最长的成员的长度。

目录
相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
「AI工程师」算法研发与优化-工作指导
**工作指导书摘要:** 设计与优化算法,提升性能效率;负责模型训练及测试,确保准确稳定;跟踪业界最新技术并应用;提供内部技术支持,解决使用问题。要求扎实的数学和机器学习基础,熟悉深度学习框架,具备良好编程及数据分析能力,注重团队协作。遵循代码、文档和测试规范,持续学习创新,优化算法以支持业务发展。
91 0
「AI工程师」算法研发与优化-工作指导
|
2月前
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
49 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
2月前
|
存储 SQL 数据库
数据库与数据结构设计
数据库与数据结构设计【8月更文挑战第22天】
12 0
|
3月前
数据库系统工程师考点笔记
数据库系统工程师考点笔记
127 0
|
3月前
|
编解码 算法 vr&ar
软考中级之数据库系统工程师笔记总结(六)多媒体基础
软考中级之数据库系统工程师笔记总结(六)多媒体基础
24 0
|
3月前
|
网络协议 安全 网络安全
软考中级之数据库系统工程师笔记总结(五)网络基础
软考中级之数据库系统工程师笔记总结(五)网络基础
25 0
|
3月前
|
人工智能 数据管理 Java
软考中级之数据库系统工程师笔记总结(四)程序设计基础
软考中级之数据库系统工程师笔记总结(四)程序设计基础
24 0
|
3月前
|
存储 算法 Unix
软考中级之数据库系统工程师笔记总结(三)操作系统
软考中级之数据库系统工程师笔记总结(三)操作系统
30 0
|
5天前
|
算法 安全 测试技术
golang 栈数据结构的实现和应用
本文详细介绍了“栈”这一数据结构的特点,并用Golang实现栈。栈是一种FILO(First In Last Out,即先进后出或后进先出)的数据结构。文章展示了如何用slice和链表来实现栈,并通过golang benchmark测试了二者的性能差异。此外,还提供了几个使用栈结构解决的实际算法问题示例,如有效的括号匹配等。
golang 栈数据结构的实现和应用
01_设计一个有getMin功能的栈
01_设计一个有getMin功能的栈
下一篇
无影云桌面