数据结构

数据结构数据结构

大家好,又见面了,我是你们的朋友全栈君。

常用数据类型

常用的有数组、栈、队列、链表、树、图、堆、散列表

数组(Array)

数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。数组可以说是最基本的数据结构,在各种编程语言中都有对应。一个数组可以分解为多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、指针数组和结构数组等。数组还可以有一维、二维以及多维等表现形式。

栈( Stack)

是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照后进先出的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。栈在汇编语言程序中,经常用于重要数据的现场保护。栈中没有数据时,称为空栈。

队列(Queue)

队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。一般来说,进行插入操作的一端称为队尾,进行删除操作的一端称为队头。队列中没有元素时,称为空队列。

链表( Linked List)

链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。

树( Tree)

是典型的非线性结构,它是包括,2个结点的有穷集合K。在树结构中,有且仅有一个根结点,该结点没有前驱结点。在树结构中的其他结点都有且仅有一个前驱结点,而且可以有两个后继结点,m≥0。

图(Graph)

是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。如果两个顶点之间存在一条边,那么就表示这两个顶点具有相邻关系。

堆(Heap)

是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。堆的特点是根结点的值是所有结点中最小的或者最大的,并且根结点的两个子树也是一个堆结构。

散列表(Hash)

散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。

数据结构分类

线性结构和非线性结构两类

线性结构

1、线性结构是非空集。
2、线性结构有且仅有一个开始结点和一个终端结点。
3、线性结构所有结点都最多只有一个直接前趋结点和一个直接后继结点。
线性表就是典型的线性结构,还有栈、队列和串等都属于线性结构。

非线性结构

1、非线性结构是非空集。
2、非线性结构的一个结点可能有多个直接前趋结点和多个直接后继结点。
在实际应用中,数组、广义表、树结构和图结构等数据结构都属于非线性结构。

数据结构常用算法

1、检索:检索就是在数据结构里查找满足一定条件的节点。一般是给定一个某字段的值,找具有该字段值的节点。
2、插入:往数据结构中增加新的节点。
3、删除:把指定的结点从数据结构中去掉。
4、更新:改变指定节点的一个或多个字段的值。
5、排序:把节点按某种指定的顺序重新排列。例如递增或递减。

数据类型

数据类型

类型名称 内容
Uninterpreted 位元字节TritTryteWord
数值 整数Fixed-point浮点数RationalComplexBignumInterval
文本 字符字符串
指针 物理地址Reference
组合 Algebraic data type数组Associative arrayClassListObjectOption typeProductRecordSetUnion
其他 布尔型Bottom typeCollectionEnumerated type异常First-class functionOpaque data typeRecursive data type信号标字串流Top typeType classUnit typeVoid

 

数据结构

集合 容器
有向无环图 二元决策图 无向图
数组 关联数组 Multimap
多重集 散列表 树状数组
列表 链表 队列 堆栈
循环队列 跳跃列表
二叉查找树 线段树
红黑树 AVL树
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106403.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 单片机原理及应用复习「建议收藏」

    单片机原理及应用复习「建议收藏」单片机总复习1.什么是单片机?特点?将通用微型计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统(嵌入式系统),用于解决小型被控对象的智能化问题(SCM或MCU)。特点:体积小(便于嵌入到小型被控对象中);扩展性好(便于组成各种应用系统);可靠性高(集成后外部连线减少,抗干扰能力增强);价格低廉(便于普及应用)2.单片机的发展趋势3.进制之间的转换搞明白点注意下有符号数还是…

    2025年9月21日
    7
  • 100道经典的c语言面试题[通俗易懂]

    100道经典的c语言面试题[通俗易懂]100条经典C语言笔试题目 题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C语言面试宝典(林锐《高质量编程第三版》)。说明:1、部分C语言面试题中可能会参杂部分和C++相关的知识,为了保持题目的灵活性故保留,但选题最终还是会以C语言题目为主体;2、以上公司的面试题目已成为国内中小型企业公司出题模板;3、由于本人的能力有限加上…

    2022年7月12日
    121
  • 硬件知识指什么

    硬件知识指什么
    计算机硬件基础知识
    电脑硬件概述
    广义的硬件不是特指计算机硬件,而是指泛指一些设施、设备、材料等有形物质及无形的精神物质。
    硬件:构成电脑的物质实体,称为硬件。如主机、显示器、键盘、鼠标。
    “计算机硬件”的简称(中国大陆及香港用语,台湾叫硬体)。与“软件”相对。电子计算机系统中所有实体部件和设备的统称。从基本结构上来讲,电脑可以分为五大部分:运算器、存储器、控制器、输入设备、输出设备等。一般我们看到的电脑都是由:主机(主要部分)、输出设备(显示器)、输

    2022年7月22日
    7
  • npm ERR! code E404 npm ERR! 404 Not Found – GET https://registry.npmjs.com/@mlamp%2fuser-info-dropdo

    npm ERR! code E404 npm ERR! 404 Not Found – GET https://registry.npmjs.com/@mlamp%2fuser-info-dropdonpmERR!codeE404npmERR!404NotFound-GEThttps://registry.npmjs.com/@mlamp%2fuser-info-dropdown-Notfound当我npminstall的时候出现这个错误原因是npm源指向的问题执行:npmconfigsetregistryhttps://registry.npmjs.org/问题的原因出现在:在Vue/react/angular框架中打包和编译时报错。使用指令为项目

    2025年7月30日
    6
  • Unity3D之如何将包大小减少到极致

    Unity3D之如何将包大小减少到极致

    2021年5月11日
    155
  • ORACLE的临时表

    ORACLE的临时表

    2021年8月21日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号