【软考程序员学习笔记】——数据结构与算法基础

news2024/12/26 11:18:52

在这里插入图片描述

目录

 🍊一、数据结构概念和分类

🍊二、数组特点&存储方式

🍊三、矩阵

特殊矩阵

非特殊矩阵

🍊四、栈和队列

🍊 五、二叉树的性质

🍊六、二叉树的遍历

(1)前序遍历(先根遍历,先序遍历)

(2)中遍历(中根遍历)

(3)后序遍历(后根遍历,后序遍历)

🍊七、二叉排序树

🍊八、最优二叉树/哈夫曼树

🍊九、完全图和连通图

🍊十、图和矩阵的转化

🍊十一、查找算法


 一、数据结构概念和分类

结构:结构是指元素之间的关系。

逻辑结构:元素之间的相互关系称为数据的逻辑结构,可划分为线性结构非线性结构

常用的线性结构有:线性表,栈,队列、数组和串

常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图

存储结构:数据元素及元素之间关系的存储形式称为存储结构,可分为顺序存储链接存储两种其本方式。

顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的

链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针

二、数组特点&存储方式

数组特点:数据元素数目固定。数据元素具有相同的类型。数据元素的下标关系具有上下界的约束且下标有序。

 其中:len表示单个元素所占用的存储单元

三、矩阵

特殊矩阵

三角矩阵:非零元素集中在矩阵的对角线的一边,包括上三角矩阵下三角矩阵

对角矩阵:矩阵中的非零元素都集中在以主对角线为中心的带状区域中

对称矩阵/反对称矩阵:Ann中的元素具有ai=ap的特点,则称之为阶对称矩阵。Ann中的元素具有aij=-a的特点,则称之为阶反对称矩阵

非特殊矩阵

稀疏矩阵:非零元素的个数远远少于零元素的个数,且非零元素的分布没有规律;对于稀疏矩阵,存储非零元素时必须同时存储其位置(即行号和列号),所以三元组(i,i,ai)可唯一确定矩阵中的一个元素。

四、栈和队列

栈是只能在一端进行插入和删除操作的线性表,其中允许插入和删除的一端叫做栈顶,另一端叫做栈底。栈是一种后进先出(LIFO)的数据结构先入栈的元素要比后入栈的元素后出栈。故将一串数据全部入栈后再全部出栈,数据的次序将前后颠倒

栈主要应用于函数调用或中断调用过程中

队列是只能在一端插入,在另一端删除的线性表,其中允许插入元素的一端称为队列头或队头,允许删除元素的一端称为队列尾或队尾。队列是一种先进先出(FIFO)的数据结构,先入队列的元要先于后入队列的元素出队列。故一串数据无论以何种操作次序通过队列,其次序都不会发生变化。

循环队列:

队空条件:head=tail

队满条件:(tail+1)%size=head

队列长度:(tail-head+size)%size

循环队列的优点:入队和出队操作都不需要移动队列中的其他元素

 五、二叉树的性质

(1)在二叉树的第i层上最多有2i-1个结点(i≥1);

(2)深度为k的二叉树最多有2k1个结点(k≥1);

(3)叶子结点数为no,度为2的结点数为n2,则no=n2+1

(4)如果对一棵有n个结点的完全二叉树的结点按层序编号(从第1层到Llogn+1层,每层从左到右),
则对任一结点i(1≤i≤n),有:

如果i=1,则结点i无父结点,是二叉树的根;如果i>1,则父结点是Li/2j;

如果2i>n,则结点i为叶子结点,无左子结点:否则,其左子结点是结点2i:

如果2i+1>n,则结点i无右子叶点,否则,其右子结点是结点2i+1。

六、二叉树的遍历

(1)前序遍历(先根遍历,先序遍历)

首先访问根结点,然后前序遍历根结点的左子树,最后再前序遍历根结点的右子树

(2)中遍历(中根遍历)

首先中序遍历根结点的左子树,然后访问根结点,最后再中序遍历根结点的右子树

(3)后序遍历(后根遍历,后序遍历)

首先后序遍历根结点的左子树,然后后序遍历根结点的右子树,最后再访问根结点

二叉树可用来描述算术表达式,此时对二叉树的先序、中序和后序遍历序列分别对应了表达式的前级表示(波兰式)、中缀表示和后缀表示(逆波兰式)。

七、二叉排序树

二叉排序树(BinarySortTree)又称为二叉搜索树,或者是一棵空树,或者是具有下列性质的二叉树:

(1)若左子树不空,则左子树上所有结点的值均小于根结点的值

(2)若右子树不空,则右子树上所有结点的值均大于根结点的值

(3)左右子树也都是二叉排序树

二叉排序树的中序遍历是一个递增的序列

八、最优二叉树/哈夫曼树

树中连接两个结点之间的分支数目称为此两结点的路径长度,结点的带权路径长度为从树根到该结点之间的路径长度与该结点上权的乘积,树的带权路径长度是指从树的根结点到其他各个结点的路径长度之和,带权路径长度最小的二叉树称为最优二叉树或哈夫曼树

九、完全图和连通图

完全图:在无向图中,若每对顶点之间都有一条边相连,则称该图为完全图(completegraph)。在有向图中,若每对顶点之间都有二条有向边相互连接,则称该图为完全图

连通图:指任意两个结点之间都有一个路径相连

十、图和矩阵的转化

邻接矩阵可简化为一个nxn的二维数组,假设数组为A[1n,.n],则数组元素Ai,i]描述了顶点i与顶
点i之间的相邻信息,即此二顶点之间的边或弧信息。在“图”中,数组元素分别使用1和0描述顶点之间是否相邻。

十一、查找算法

排序总表:


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《MySQL》什么是数据库

文章目录 数据库的理解MySQL的架构SQL语句分类存储引擎 数据库的理解 我们所下的数据库软件(如MySQL)其实是中间件。如何理解呢,如图: 我们用户通过MySQL对数据进行管理。 mysql #客户端程序 mysqld #服务端程序,再修改配置后需要重新启动…

【MySQL】在Linux终端上使用MySQL的简单介绍

本文仅供学习参考! MySQL是一个开源的跨平台关系数据库管理系统(RDBMS)。MySQL使用标准查询语言(SQL)与MySQL软件进行通信。 数据库管理员和开发人员通过运行语句与 RDBMS 交互,这些语句在数据库管理中称为…

前端Vue自定义登录界面切换tabs 账号登录验证码登录模版 支持手机号校验邮箱校验验证码发送

前端Vue自定义登录界面切换tabs 账号登录验证码登录模版 支持手机号校验邮箱校验、验证码发送, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id13298 效果图如下: # cc-loginTabs #### 使用方法 使用方法 …

Spring Boot中@RabbitHandler注解的介绍、原理和使用

Spring Boot中RabbitHandler注解的介绍、原理和使用 引言 在RabbitMQ中,消息的消费者需要根据不同的消息类型进行不同的处理。在Spring Boot中,我们可以通过RabbitHandler注解来实现这一功能。本文将介绍Spring Boot中RabbitHandler注解的介绍、原理和…

【聚类算法】DBSCAN基于密度聚类

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 瞬间感觉kmeans不香了,哈哈哈 说明: 该算法不仅能聚类,还能剔除离群点,聚类以后标签为-1的即噪声点&…

滑动折叠效果简单实现

绿色为标题&#xff0c;滑动时始终不会被折叠、不会滑动。红色和黑色会在滑动的时候折叠&#xff0c;先折叠红色&#xff0c;在折叠黑色。 activity_shop_search.xml&#xff1a; <?xml version"1.0" encoding"utf-8"?> <layout xmlns:androi…

css实现元素纵向排列自动换列

块级元素在容器类纵向排列&#xff0c;当达到最大高度后自动换到下一列 <div id"main-div"><div class"item">1 一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容一条内容…

王道考研计算机网络第四·章知识点汇总

4.1.1网络层功能概述 4.1.2 SDN基本概念 4.2.1 路由算法和路由协议概述 4.3.1 IP数据报格式 4.3.2 IP数据报分片 4.3.3 IPv4地址 4.3.4 网络地址转换NAT 4.3.5 子网划分和子网掩码 不同子网掩码得到的网络地址可能相同 网络号为B类地址&#xff0c;16位网络号&#xff1b;6位子…

从四个角度全面认识 ChatGPT

传统语言模型是什么样的&#xff1f;ChatGPT 涌现出了哪些新能力&#xff1f;这些能力都是怎么做到的&#xff1f;在 ChatGPT 大模型时代&#xff0c;我们应该怎么做&#xff1f; 当下最引人注目的语言模型 ChatGPT 如火如荼&#xff0c;主要还是因为其能力远远超越了传统模型。…

js中堆的操作和案例!

堆 什么是堆&#xff1f; 堆是一种特殊的完全二叉树。完全二叉树的含义就是每层节点都完全填满&#xff0c;除了最后一层外只允许最右边缺少若干个节点。在 JavaScript 中通常用数组表示堆&#xff08;按照广度优先遍历顺序&#xff09;。 最大堆 最小堆 特性 所有的节…

Python入门教程+项目实战-14.4节-lambda表达式

目录 14.4.1 理解匿名函数 14.4.2 lambda表达式 14.4.3 lambda表达式与具名函数 14.4.4 知识要点 14.4.5 系统学习python 14.4.1 理解匿名函数 匿名函数&#xff0c;从其字面意思来进行理解。所谓的匿名即不具名&#xff0c;没有名称。匿名函数&#xff0c;也就是没有函…

chatgpt赋能python:Python编程语言-让生活更有趣

Python编程语言-让生活更有趣 作为一名10年的Python工程师&#xff0c;我可以毫不犹豫地说&#xff0c;Python是一种编辑器最有趣的编程语言之一。作为Python的忠实拥护者和使用者&#xff0c;我深信Python可以让生活变得更轻松&#xff0c;更有趣。 Python简介 Python是一种…

std::function的讲解与实战

一、C语言中的函数指针 先看一个函数指针的例子 test_fun.cpp&#xff1a; #include<iostream>//定义函数指针 typedef int (*func)();using namespace std;int test1(){cout<<"hello, test1"<<endl;return 0; }int test2(){cout<<"h…

第三十五章Java面向对象概念及封装、继承、多态三种特性详解

面向对象简称 OO&#xff08;Object Oriented&#xff09;&#xff0c;20 世纪 80 年代以后&#xff0c;有了面向对象分析&#xff08;OOA&#xff09;、 面向对象设计&#xff08;OOD&#xff09;、面向对象程序设计&#xff08;OOP&#xff09;等新的系统开发方式模型的研究。…

ch10_2控制单元的_微程序设计

1. 微程序设计 1.1 微程序设计思想 使用微程序的设计方式&#xff0c;实现计算机系统的控制器&#xff1b; 微程序的设计&#xff0c;是方便指令集的修改和扩展&#xff1b; 每个节拍发出的控制命令&#xff0c; 实际上就是一个电信号&#xff0c;或者是几个电信号&#xf…

堆的向下调整算法,堆排,TopK问题

文章目录 堆的向下调整算法堆的删除&#xff1a;堆排序向上调整建堆的时间复杂度向下调整建堆的时间复杂度为&#xff1a;TopK问题 堆的向下调整算法 我们在这里都已小堆为例&#xff1a; 在这里我们有一个数组 int array[] {27,15,19,18,28,34,65,49,25,37}; 我们通过把根节…

Oracle VM VirtualBox添加磁盘

文章目录 1、Oracle VM VirtualBox添加磁盘 1、Oracle VM VirtualBox添加磁盘 1.关闭正在启动的Oracle VM VirtualBox 2、选择存储 3、点击最右边 4、选择创建 直接下一步&#xff1a; 直接下一步&#xff1a; 调整需要的大小–创建即可: 此时此刻磁盘加载成功&#xff0…

【综合企业管理平台】网络杂谈(10)之什么是Unicenter TNG?

涉及知识点 什么是 Unicenter TNG&#xff0c;Unicenter TNG的基本管理功能&#xff0c;Unicenter TNG Discovery &#xff0c;深入了解Unicenter TNG技术&#xff0c;综合企业管理平台 Unicenter TNG 。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可…

8.串行通信

1.通信接口相关知识&#xff1a; &#xff08;1&#xff09;处理器与外界设备通信的两种方式&#xff1a; 1&#xff09;并行通信&#xff1a; 传输原理&#xff1a;数据各个位同时传输&#xff1b; 优点&#xff1a;速度快&#xff1b; 缺点&#xff1a;占用引脚资源多&…

vue+leaflet笔记之地图网格

vueleaflet笔记之地图网格 本文介绍了Web端使用Leaflet开发库显示地图经纬网和标准图幅网格的方法 (底图来源:天地图)&#xff0c; 地图格网是由间隔均匀的横向线和纵向线组成的网络&#xff0c;用于在地图上识别各个位置。 经纬网通过在地图上描绘纬度和经度格网&#xff0c;…