数据结构小复习

1、什么是数据结构
当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。

现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删除,也是在追求更快。

我们java是面向对象的语言,就好似自动档轿车,C语言好似手动档吉普。数据结构呢?是变速箱的工作原理。你完全可以不知道变速箱怎样工作,就把自动档的车子从 A点 开到 B点,而且未必就比懂得的人慢。写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。当然了,数据结构内容比较多,细细的学起来也是相对费功夫的,不可能达到一蹴而就。我们将常见的数据结构:堆栈、队列、数组、链表和红黑树 这几种给大家介绍一下,作为数据结构的入门。
2、几种常见的数据结构

  • :stack,又称堆栈,他是运算受限的线性表,其限制是只允许在标的另一端进行插入和删除操作,不允许在表的其他任何位置进行任何查找、插入、删除等操作。
    运用这个结构的集合,有以下特点:

  • 先进先出(即:存入的元素必须要在他后面的元素依次取出后才能取出此元素),就如弹夹上弹。

  • 栈的入口和出口都在栈的顶端在这里插入图片描述

  • 压栈:就是存元素,把元素存入到栈的顶端,如果栈中已有元素就向栈底方向依次移动一个位置

  • 弹栈:就是取元素,把把栈顶的元素取出

  • 在这里插入图片描述

队列

  • 队列:queue,简称队,它也是一种运算受限的线性表,只允许在表的一端存入,在表的另一端取出。

队列结构的特点:

  • 先进先出(即:存进去的元素只能在它前面的元素依次取出后才能取出)例如火车进山洞
  • 队列的入口和出口各占一侧
    在这里插入图片描述
    在这里插入图片描述

数组

  • 数组:Array,是有序的元素序列,数组是在内存中开辟出的一块连续的空间,并可以在这块空间存取元素。就像是一排楼每一个房间都有编号,根据编号就i可以快速找到房间里的人
    数组结构的特点

  • 查找元素快:可以通过索引可快速访问指定位置的元素

  • 增删元素慢

  • 插入指定索引新元素需要创建一个新数组,把需要插入的元素存入指定的位置,再把原数组复制到新数组
    在这里插入图片描述

  • 删除指定索引新元素需要创建一个新数组,把原数组按索引将元素复制到新数组,指定删除的元素不复制
    在这里插入图片描述

链表

  • 链表:linked list有一系列节点node(链表中每一个元素表示一个节点)组成,
  • —未完-----

猜你喜欢

转载自blog.csdn.net/qq_40469797/article/details/107621694
今日推荐