仅为学习记录~


数据结构与算法

  • 数据结构的概述
  • 数据结构的概念
  • 线性表
  • 顺序存储结构(顺序表)
  • 链式存储结构(链表)
  • 单链表
  • 结点结构
  • 循环链表
  • 双向链表
  • 队列与栈
  • 队列
  • 数组
  • 数与二叉树
  • 数与二叉树
  • 二叉树遍历
  • 算法概述
  • 算法的概念
  • 算法的特性
  • 复杂度
  • 排序算法的总结


数据结构的概述

数据结构的概念

数据结构是指数据对象的集合,以及元素之间的相互关系和构造方法

数据结构分为逻辑结构和物理结构
逻辑结构:元素之间的关系
物理结构:元素之间存储的形式

逻辑结构分为线性结构和非线性结构

数据结构与算法张乃孝 数据结构与算法张瑞霞_经验分享


线性结构:有单一的前驱、单一的后继

特点:元素呈线性排列

非线性结构:前驱和后继都不是单一的

线性表

线性表:有限个元素构成的序列,是一种简单的数据结构(a1,a2,…,an)

线性表常见的两种存储结构

顺序存储结构(顺序表)

在物理上相邻的块一个一个的存储

链式存储结构(链表)

存放的数据块在物理位置上不是连续的

单链表

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据

结点结构

┌───┬───┐
│data │next │
└───┴───┘
data域–存放结点值的数据域
next域–存放结点的直接后继的地址(位置)的指针域(链域)
链表通过每个结点的链域将线性表的n个结点按其逻辑顺序链接在一起的,每个结点只有一个链域的链表称为单链表(Single Linked List)。

循环链表

循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。

循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。

双向链表

双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点

队列与栈

队列

队列是一种先进先出的结构

数据结构与算法张乃孝 数据结构与算法张瑞霞_数据结构与算法张乃孝_02

栈是一种特殊的线性表,插入和删除元素只在栈顶进行

数据结构与算法张乃孝 数据结构与算法张瑞霞_经验分享_03


I表示入栈,O表示出栈

数组

数组是一系列相同类型的元素组成的集合

数组类型

存储地址计算

一维数组a[n]

a[i]的存储地址为:a+i*len

二维数组a[m][n]

a[i][j]的存储地址为(按行存储):a+(i*n+j)*len

二维数组a[m][n]

a[i][j]的存储地址为(按列存储):a+(j*m+i)*len

数与二叉树

数与二叉树

结点的度:某个结点子树的个数
树的高度:数的层次
叶子结点:又称为终端节点,指度为0的节点
分支结点:又称为内部节点,指度不为0的节点
父结点:父结点是相对的

二叉树遍历

前序遍历:根序-左序-右序

中序遍历:左序-根序-右序

后序遍历:右序-左序-根序

层次遍历:

数据结构与算法张乃孝 数据结构与算法张瑞霞_结点_04


二叉树进行层次遍历:首先搜索第1层根节点A,然后搜索第2层,从左向右B、C,再搜索第3层,从左向右D、E、F,再搜索第4层G

堆是计算机科学中一类特殊的数据结构的统称
堆通常是一个可以被看做一棵树的数组对象

堆的性质:堆中某个结点的值总是不大于或不小于其父结点的值,堆总是一棵完全二叉树

分为大顶堆和小顶堆,大(小)顶堆要求父元素大于等于(小于等于)其左右子元素

数据结构与算法张乃孝 数据结构与算法张瑞霞_数据结构_05

算法概述

算法的概念

对特定问题求解的一种描述,是指定的有序序列

算法的特性

有穷性:一个算法必须在有穷的时间内固定完成
可行性:在有限的时间内能够实现
确定性:指令算法中,每一个指令不存在二义性(每个都有确定含义)
输入:一个算法可以有0-n个输入
输出:算法一定有1-n个输出

复杂度

数据结构与算法张乃孝 数据结构与算法张瑞霞_数据结构_06

时间复杂度:是指程序运行从开始到结束所需要的时间
分析时间复杂度的方式是取一种对于所研究问题的基本运算操作,以该操作的重复次数对于该操作运算时间的度量

空间复杂度:算法在运行过程中,需要占用临时空间大小的度量,一般只考虑在运行过程中局部变量分配的存储空间大小

排序算法的总结

数据结构与算法张乃孝 数据结构与算法张瑞霞_数据结构_07