iOS之数据结构与算法

数据结构的类型:

集合结构线型结构树形结构图形结构

一、概念

  1. 集合结构:

集合结构就是一个集合,就是一个圆圈中有很多个元素,元素与元素之间没有任何关系。

  1. 线性结构:

就是一个条线上站着很多个人,这条线不一定是直的,也可以是弯的。相当于一条线被分成了好几段的样子。线性结构是一对一的关系。

  1. 树形结构:

做开发的肯定或多或少的知道xml解析树形结构跟他非常类似,也可以想象成一个金字塔,树形结构是一对多的关系。

  1. 图形结构:

这个就比较复杂它属于无穷、无边、无向,图形机构可以理解为多对多,类似于我们人的交际关系。

二、数据结构的存储

数据结构的存储方式一般常用的有顺序存储链式存储两种结构方式。
  1. 顺序存储结构

数组:1-2-3-4-5-6-7-8-9-10。这个就是一个顺序存储结构,存储是按顺序的 举例栈是先进后出,后进先出的形式。

  1. 链式存储结构

链式存储是按数据的地址来进行存储的,而且存储时不按顺序进行,有1,2,3,4,5,6 他们分别对应着各自的地址。执行方式是按小到大的顺序进行排序执行,但是存储是完全属于随机进行。

三、单向链表\双向链表\循环链表

  1. 单向链表

    A->B->C->D->E->F->G->H. 这就是单向链表 H 是头 A 是尾 像一个只有一个头的火车一样 只能一个头拉着跑

  2. 双向链表

    H<- A->B->C->D->E->F->G->H. 这就是双向链表。有头没尾。两边都可以跑 跟地铁一样 到头了 可以倒着开回来

  3. 循环链表

发挥想象力 A->B->C->D->E->F->G->H. 绕成一个圈。就像蛇吃自己的这就是循环 不需要去死记硬背哪些理论知识

四、二叉树/平衡二叉树

  1. 二叉树的定义

二叉树是每个节点最多有两个子树的有序树。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆

2.二叉树的基本概念

二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:

2.1. 空二叉树
2.2. 只有一个根结点的二叉树
2.3. 只有左子树
2.4. 只有右子树
2.5. 完全二叉树

你可能感兴趣的:(iOS之数据结构与算法)