数据结构
A_xun_A
Android开发者,注重用户体验
展开
-
数据结构基础
一、定义与目的 数据结构就是数据的组织形式,在应用中涉及各种各样的数据,为了存储它们,组织它们,需要讨论它们的归来及它们之间的关系,从而建立相应的数据结构,并以此实现要求的软件功能。二、分类 1. 线性结构:也成为线性表,在这种结构中所有数据元素都按某种次序排列在一个序列中。根据对线性结构中数据元素存取方法的不同,又可分为直接存取结构、顺序存取结构和字典结构。对于直接存取结构,可以直接存取...原创 2018-07-05 14:33:35 · 205 阅读 · 0 评论 -
线性表
背景上一篇文章说过,数据的结构分为线性结构和非线性结构,而线性结构表示结构中所有数据元素都按某种次序排列在一个序列中。根据对线性结构中数据元素存取方法的不同,可分为直接存取结构、顺序存取结构和字典结构。比如:数组、文件 对于直接存取结构,可以直接存取某一指定项而不须先访问其前驱,就像数组、文件,可以根据下标直接存取某一数组元素,可以按记录号直接检索记录集合或文件中的某一记录。比如:单...原创 2018-07-05 14:51:29 · 182 阅读 · 0 评论 -
栈和队列
之前已经说过,数据结构是数据的一种组织形式,根据不同的需求就会出现不同的数据结构,栈和队列就是两种特殊的线性表数据结构,Android四大组件之一Activity的就是以栈的结构组织的。 栈其可定位为只允许在表的末端进行插入和删除的线性表,遵循后进先出的规则。在这个规则之下,基于数组的存储表示实现的栈成为顺序栈,基于链表的存储表示实现的栈成为链式栈。顺序栈的实现在于使用了数组这个基本...原创 2018-07-05 15:56:49 · 185 阅读 · 0 评论 -
树
背景前面已经学习了线性结构和表结构,这些数据结构适用于一部分的数据组织,但是对于局域分支结构的数据,就需要另一种数据结构了—树。这种分支结构的数据与数据之间可能有上下级关系、可能有整体与部分的关系,如现实世界中的族谱、公司的组织结构、书的章节等。树的定义是一个递归的定义,即树的定义中又用到了树的概念。二叉树它的特点是每个结点最多有两个子女,分别成为该结点的左子女和右子女。就是说,在...原创 2018-07-05 16:11:57 · 221 阅读 · 0 评论 -
单向链表的java实现
如果需要快速访问数据,很少或不插入和删除元素,就应该用数组,相反,如果需要经常插入和删除的就需要用链表了。实例一设计一个节点类,以String为数据的保存内容,手工把各节点串联起来,然后从根节点开始输出整条链表数据。class Node{ private String data; private Note next; //表示保存下一个节点 publ...原创 2018-07-05 16:19:10 · 229 阅读 · 0 评论 -
HashMap的实现原理
背景标题中的几个关键字在许多文章都会看到,但是我们并不知道它们是什么意思,下来一起来学习一下。哈希表参考谈谈哈希表,感谢原作者,侵删。举一个例子:我们在程序里,要用一个数据结构去表示全班40名学生的姓名、学号、电话、家庭住址,可以用个Student对象来表示每个学生,然后以数组的形式组织全部Student,这样组织数据没有问题。当要对这个数据进行频繁移动、增减的时候,我们可以链...原创 2018-07-05 18:00:12 · 398 阅读 · 0 评论 -
What?HashMap的实现原理?
参考文章:HashMap实现原理及源码分析前段时间面试被问到HashMap的实现原理,完全懵逼,只知道它的存储的是键值对,下面好好理解一下。什么是哈希表看过《数据结构》的都知道,数据结构有很多种,如以下: 数组: 采用一段连续的存储单位来存储数据。 线性链表: 对中间元素来说,头结点存储上一个元素的引用,尾结点存储下一个元素的引用,中间存储数据。链表对于新增、删除的操作来说,只...原创 2018-07-11 22:42:15 · 295 阅读 · 0 评论