[、Java Collections Frameworkの深い理解] - データ構造

データの構造

一般的な構造のデータが格納されています。スタック、キュー、配列、リンクリスト、およびバイナリツリーを。

スタック

  • スタック:これは、操作テーブル線形制限されるが、一方の端部のみに、被験体への挿入および削除の操作を可能にすることを制限して、他の場所、検索、および削除操作を追加することは許されません。

簡単に言えば:構造要素のセットを使用するには、次の機能へのアクセス権を持っています

  • 最後のアウト(すなわち、それは連続要素を除去するために、バックれた後の要素へのメモリ素子に)。例えば、弾丸はショット、ポップ上記の最初の弾丸は、弾丸を以下の前にポップする場合、上記の箇条書きに押した後に行くために圧力の下で、クリップに最初の弾丸を押しました。

  • スタック入口、出口スタックは、トップ位置です。

ここでは、2つの用語は、注意する必要があります。

  • プッシュ:要素を格納しています。すなわち、スタックの位置の先頭に記憶素子は、既にスタックエレメントに順次スタックの底部の方向に一箇所を移動させます。
  • ポップ:それは要素を取ることです。すなわち、上部スタック素子の位置は、スタック内に既に要素が順次積層の方向に一箇所を移動させる、取り出されます。

キュー

  • キュー:これは、線形形状も制限動作のみテーブルの端部の挿入を可能にする制限され、スタックと同じであり、そしてもう一方の端にテーブルを削除します。

簡単に言えば、構造要素のセットを使用して、次の機能へのアクセス権を持っています:

  • FIFO(即ち、それは連続的要素を除去するために、取り出した後、フロント要素にメモリ素子に)。例えば、電車はフロント、リアに行く、行くで、トンネルを通って行きました。フロントはまず、出てきたリアの後に出てきました。
  • 入力キュー、半分と出口側。例えば、図の左側は、入口、右側のための出口です。

配列

  • アレイアレイは、要素の順序付けられたシーケンスであり、アレイは、メモリ内の連続したオープンスペースであり、この空間内の記憶素子。B&Bは、放電のようなものです、100室があり、すぐに借りる人を見つけることができる数で001100から各部屋に固定番号を持っています。

簡単に言えば、構造要素のセットを使用して、次の機能へのアクセス権を持っています:

  • 素早く要素を見つける:インデックスで、あなたはすぐに要素の場所にアクセスすることができます

  • 追加または削除要素遅いです

  • 指定索引位置增加元素:需要创建一个新数组,将指定新元素存储在指定索引位置,再把原数组元素根据索引,复制到新数组对应索引的位置。如下图
    在这里插入图片描述

  • **指定索引位置删除元素:**需要创建一个新数组,把原数组元素根据索引,复制到新数组对应索引的位置,原数组中指定索引位置元素不复制到新数组中。如下图

在这里插入图片描述

链表

  • 链表:由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的链表结构有单向链表双向链表

  • 双向链表

  • 单向链表

简单的说,采用该结构的集合,对元素的存取有如下的特点 (使用单项链表说明)

  • 多个结点之间,通过地址进行连接。例如,多个人手拉手,每个人使用自己的右手拉住下个人的左手,依次类推,这样多个人就连在一起了。

  • 查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素

  • 增删元素快:

    • 增加元素:只需要修改连接下个元素的地址即可。

    • 删除元素:只需要修改连接下个元素的地址即可。

二叉树

  • 二叉树binary tree ,是每个结点不超过2的有序树(tree)

(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的结点。

简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点。

二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树”和“右子树”。

如图:

在这里插入图片描述

  • 二叉树查找
  1. 若根结点的关键字值等于查找的关键字,查找成功。
  2. 否则,若小于根结点的关键字值,递归查左子树。
  3. 若大于根结点的关键字值,递归查右子树。
  4. 若子树为空,查找不成功。
发布了61 篇原创文章 · 获赞 55 · 访问量 3万+

おすすめ

転載: blog.csdn.net/qq_18604209/article/details/104429182