数据结构
君子慎独_诚意
一体化网络、网络安全
展开
-
数据结构--树结构:二叉排序树,二叉搜索树、AVL
关于树的几个概念 树:非线性结构,数据元素之间的逻辑关系时前驱唯一而后续不唯一,即数据元素之间是一对多关系。 二叉树:每个结点最多有两个子树;左右子树是有序的,次序不能颠倒;即使树中只有一个结点,也要区分左右子树。 满二叉树:所有分支结点都存在左右子树,并且所有叶子都在同一层上。 完全二叉树:对一棵具有n个结点的二叉树按层序编号,如果编号为i的结点与同样深度的满二叉树中编号为i的结点...原创 2019-03-03 20:48:17 · 235 阅读 · 0 评论 -
数据结构:排序之快速排序
基本思想 快速排序:在每轮排序中,选取一个基准元素,通过一趟排序将待排记录分割成独立的两个部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,已达到整个序列有序的目的。 核心代码对于数组a中从下标为low至下标为high的元素,选取一个基准元素(pivotKey),根据与基准比较的大小,将这些元素排到基准元素的两端。 如何选择基准元素 最简单的是选择...原创 2019-02-24 11:00:01 · 298 阅读 · 0 评论 -
数据结构:排序之简单选择排序
简单选择排序:通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。 package sort_algorithms; /** * 简单选择排序: */ public class Simple_Selection_Sort { public void simple_selection(int[] arr) { for (in...原创 2019-02-23 17:22:38 · 198 阅读 · 0 评论 -
数据结构:排序之冒泡算法
冒泡算法属于交换类排序,通过两两比较待排元素的关键字,若与排序要求相逆,则交换。 初级版本 :交换排序,不满足两两相邻比较,让每一个关键字和它后面的每一个比较----效率低 public void bubble_1(int[] arr) { for (int i = 0; i < arr.length; i++) { for (...原创 2019-02-23 16:58:17 · 114 阅读 · 0 评论 -
基本数据结构-堆,栈,队列
栈stack:先进后出(last in ,first oute) 队列(queue):先进先出(first in,first out) 链表(link list) 线性表 特点:在元素的有限集中,除第一个元素无直接前驱,最后一个元素无直接后驱外,每个数据元素有且仅有一个直接前驱元素和一个直接后续元素。 线性表用一组地址连续的存储单元一次存储线性表的数据元素。假设每个数据元素占k个存储单元...原创 2018-12-16 14:22:16 · 154 阅读 · 0 评论 -
数据结构系列----循环链表和双向链表
对于单链表,每个结点只存储了后向指针 循环链表:首尾相接的单链表 循环链表的头指针(空链表): 非空循环链表: 循环链表和单链表的主要差异: 在循环的判断条件上,单链表判断:p->next是否为空;循环链表:p->next不等于头结点,则循环没有结束 双向链表:在单链表的每个结点中,在设置一个指向前驱结点的指针 双向链表的头指针:(空链表)...原创 2018-09-16 17:09:15 · 296 阅读 · 0 评论 -
数据结构---线性表:链式存储结构
前面说到线性表的顺序存储结构,它的插入和删除动作需要移动大量元素,费时。 原因:顺序存储结构的线性表,相邻元素的存储结构也是邻居关系,中间没有空隙,无法快速介入,而删除的时候回留出空隙,需要弥补。 线性表链式存储结构定义 数据域(data):存储数据元素信息的域 指针域(next):存储直接后继位置的域,指针域中存储的信息称为指针或链 由上面两部分信息组成的数据元素ai的存储映像称为...原创 2018-09-16 16:42:12 · 834 阅读 · 0 评论 -
数据结构系列--线性表定义,顺序存储结构
线性表定义 线性表(List):零个或多个数据元素的有限序列。 注意:是一个序列,每个元素之间是有序的,第一个元素无先驱,最后一个元素无后继 数学定义: 若将线性表记为:(a1,a2,...,ai-1,ai,ai+1...,an),则ai-1领先于ai,ai+1领先于ai,称ai-1为ai的直接前驱,a1+1为ai的直接后继元素。 线性表里面的元素要为相同的数据类型。 线性表的存储结构...原创 2018-09-16 11:57:37 · 234 阅读 · 0 评论 -
数据结构:排序之堆排序Heap Sort
Heap Sort,堆排序,对简单选择排序的一种改进 二叉堆:顺序存储 堆具有完全二叉树的性质:每个结点值都大于或等于其左右孩子结点的值,成为大顶堆;或者每个结点值都小于等于其左右孩子结点值,称为小顶堆。 大顶堆,图片来自程序员小辉灰 ...原创 2019-02-26 11:41:23 · 197 阅读 · 0 评论