【数据结构与算法】数据结构有哪些?算法有哪些?
1. 算法与数据结构总览图
2.常用的数据结构
2.1.数组(Array)
数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。数组可以说是最基本的数据结构,在各种编程语言中都有对应。一个数组可以分解为多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、指针数组和结构数组等。数组还可以有一维、二维以及多维等表现形式。
2.2.栈(Stack)
栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照先进后出或后进先出的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。栈在汇编语言程序中,经常用于重要数据的现场保护。栈中没有数据时,称为空栈。
2.3.队列(Queue)
队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作,即先进先出。一般来说,进行插入操作的一端称为队尾,进行删除操作的一端称为队头。队列中没有元素时,称为空队列。
2.4.链表(Linked List)
链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。
2.5.树(Tree)
树是典型的非线性结构,它是包括,2个结点的有穷集合K。在树结构中,有且仅有一个根结点,该结点没有前驱结点。在树结构中的其他结点都有且仅有一个前驱结点,而且可以有两个后继结点,m≥0。
2.6.图(Graph)
图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。如果两个顶点之间存在一条边,那么就表示这两个顶点具有相邻关系。
2.7.堆(Heap)
堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。堆的特点是根结点的值是所有结点中最小的或者最大的,并且根结点的两个子树也是一个堆结构。
2.8.散列表(Hash)
散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。
3.常用的算法
常用算法有:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法等。
【数据结构与算法】数据结构有哪些?算法有哪些?相关推荐
- 《机器学习》、《算法数据结构》、《LeetCode原创题解》开放下载!
你好,我是梁唐. 我是公众号TechFlow的作者,专注推荐算法领域.拥有10年编程经验,5年从业经验.ACM亚洲区域赛银牌,前BAT员工. 我从去年11月开始做公众号,至今差不多已经一年时间.在这一 ...
- 排序中减治法算法伪代码_【算法与数据结构】伪代码与流程图
js难的是抽象概念 编程语言也能抽象 JS Python java PHP 根本就没区别 这些语言都有 声名 if...else while 循环 for 循环 函数 对象 这意味着 你没有必要过分关 ...
- 从算法+数据结构到MVC
2019独角兽企业重金招聘Python工程师标准>>> -------------------- Pascal之父--Nicklaus Wirth,提出了著名公式:"算法+ ...
- 打破认知:程序设计 #x3D; 算法 + 数据结构?
大家好,我是陈旸,也是极客时间<数据分析实战 45 讲>专栏作者.很荣幸接到极客时间的邀请,来到极客 Live 和大家分享关于"数据分析"的话题.这次分享会共分为五部分 ...
- 野生前端的数据结构练习(12)贪心算法
参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/GreedyAlogrithm 一.贪心算法 贪心算法属于比较简单的 ...
- C语言水洼数算法,C++ 数据结构之水洼的数量算法
C++ 数据结构之水洼的数量算法 题目: 有一个大小为N*M的园子, 雨后起了积水. 八连通的积水被认为是连接在一起的. 请求出园子里总共有多少水洼. 使用深度优先搜索(DFS), 在某一处水洼, 从 ...
- 算法 | 数据结构与算法(代码版)
================================================= 博主github:https://github.com/MichaelBeechan 博主CSDN: ...
- 有向图最长路径算法_算法数据结构 | 三个步骤完成强连通分量分解的Kosaraju算法...
强连通分量分解的Kosaraju算法 今天是算法数据结构专题的第35篇文章,我们来聊聊图论当中的强连通分量分解的Tarjan算法. Kosaraju算法一看这个名字很奇怪就可以猜到它也是一个根据人名起 ...
- python数据结构算法优势_Python数据结构与算法(一)----- 算法效率
一.引入 先来看一道题: 如果a+b+c=1000, 且a2+b2=c^2(a,b,c为自然数),如何求出所有a,b,c可能的组合? (1) 枚举法 import time start_time = ...
- 【数据结构与算法】【算法思想】Dijkstra算法
图的两种搜索算法,深度优先搜素和广度优先搜索.这两种算法主要是针对无权图的搜索算法.针对有权图,也就是图中的每条边都有一个权重,该如何计算两点之间的最短路径?最短路径算法(Shortest Path ...
最新文章
- HDFS的shell和API操作
- 编程开发之--Oracle数据库--存储过程和存储函数(2)
- 02.规划过程组表格-需求管理计划
- keil环境下stm32下载和擦除程序对Flash的影响
- python 二维数组 长度_Python创建二维数组的正确姿势
- 无人机飞控开发平台培训理论课程——MSP430最小系统
- 验证redis的主从复制
- python函数不定参数_python如何定义不定参数函数
- 飞畅科技-工业以太网交换机的差异性
- oracle insert into as select,比较create table as select * 与 insert into table select *
- powerbuilder查询符合条件的数据并且过滤掉其他数据_SQL语句之逻辑查询处理阶段...
- strcmp java_(一)strcmp函数
- 避雷指南:软件测试最容易陷的28个误区
- 1.一个整形数组的最大值
- 网络安全自学笔记04 - 路由器技术
- php表格制作4行两列的表格,excel表格怎么插行和列?
- 网络安全职业规划(笔记)
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 计算机无法播放器,完美解决Win7系统Windows Media Player(媒体播放器)无法开启、错误、死机等问题...
- MySQL 数据库--存储引擎
热门文章
- stock 工具收集
- 交通数字孪生高速公路规划设计市政道路BIM正向改扩建设计利用实景三维无人机机载LiDAR倾斜摄影车载地面三维激光扫描仪LiDAR点云数据提取自动驾驶高精地图三维矢量车道标线3d点云标注
- 终于懂了汇编代码为什么从键盘上输入字符,将该字符的ASCII显示在屏幕上必须要加30或37(附汇编代码)
- 公交线路查询系统 C++实现 图
- CUDA Programming Model--CUDA编程模型
- 浏览器被万恶的hao123锁定主页
- 怎么看网站域名有没有收录 收录情况怎么样 网站收录查询
- Byte和Integer互转
- UG\NX二次开发 Visual Studio平台工具集介绍
- 白话数据、数据项、数据元素和数据对象的概念和联系。