Java数据结构和算法(一)树 前面讲到的链表、栈和队列都是一对一的线性结构,这节讲一对多的线性结构 树。「一对多」就是指一个元素只能有一个前驱,但可以有多个后继。 一、树 __度(Degree)__ :节点拥有的子树数。树的度是树中各个节点度的最大值。 __节点__ :度为 0 的节点称为叶节点( ...
分类:
编程语言 时间:
2018-12-09 12:18:06
阅读次数:
267
用链表实现栈: 链表栈: 测试: 和数组栈比较: 测试用例: 测试结果:链表栈比数组栈快一些,但没有复杂度上的巨大差异 ...
分类:
其他好文 时间:
2018-11-20 01:21:41
阅读次数:
178
如何实现随机访问? 线性表:数组,队列,链表,栈 非线性表:树,图 总结:数组用一块连续的内存空间,来存储相同类型的一组数据,最大的特点就是支持随机访问,但插入,删除操作也因此变得比较低效,平均情况时间复杂度未O(n).在平时的业务开发种,我们可以直接使用变成语言提供的容器类,但是,如果是特别底层的 ...
分类:
编程语言 时间:
2018-11-17 21:02:41
阅读次数:
143
一:理论部分。 1.数据结构:分为a.线性数据结构,如线性表、栈、队列、串、数组和文件。 b.非线性数据结构,如树和图。 1)所有数据元素在同一个线性表中必须是相同的数据类型。 线性表按其存储结构可分为顺序表和链表。 2)栈:也是一种特殊的线性表,是一种后进先出(LIFO)的结构。 栈是限定仅在表尾 ...
分类:
编程语言 时间:
2018-11-11 12:13:24
阅读次数:
159
Java中的数组在内存中的图解,其实对于数组,还是比较熟悉的,平时用的也是很多的,在看数据结构与算法的极客时间专栏,最常用的10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树,其中数组是最基础,也是学起来最简单的一种数据结构,数组是一种线性表数据结构。它用一组连续的内存空 ...
分类:
编程语言 时间:
2018-10-31 23:31:16
阅读次数:
406
数据结构是以某种形式将数据组织在一起的集合,不仅存储数据, 还支持访问和处理数据的操作. 基础的数据结构有:线性表(数组,链表),栈与队列,树与二叉树,图等 1. 冒泡 冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置。 快速排序使用分治法策略来把一个序列分为两个子序列 ...
分类:
其他好文 时间:
2018-10-02 20:31:13
阅读次数:
176
在编程领域,数据结构与算法向来都是提升编程能力的重点。而一般常见的数据结构是链表,栈,队列,树等。事实上C#也已经封装好了这些数据结构,在头文件 System.Collections.Generic 中,直接创建并调用其成员方法就行。不过我们学习当然要知其然,亦知其所以然。 本文实现的是链表中的单链 ...
说明: 本文主要展示Python实现的几种常用数据结构:顺序表、链表、栈和队列。 附有实现代码。 来源主要参考网络文章。 一、顺序表 1、顺序表的结构 一个顺序表的完整信息包括两部分,一部分是表中元素集合,另一部分是为实现正确操作而需记录的信息,即有关表的整体情况的信息,这部分信息主要包括元素存储区 ...
分类:
编程语言 时间:
2018-08-28 14:20:58
阅读次数:
152
数据结构:链表、栈、队列:链表插入元素。Huffman树:树的构建。二叉树、平衡二叉树:树的遍历(前序中序后序),查找树中两个元素和为某个值的叶子节点。堆:大(小)顶堆构建,topN的数。排序:冒泡排序,插入排序。查找:二分查找,快速查找。高级数据结构:动态规划、分治算法机器学习: 监督学习算法: ...
分类:
其他好文 时间:
2018-08-02 19:17:48
阅读次数:
132
阅读目录 什么是算法 算法效率衡量 算法分析 常见时间复杂度 Python内置类型性能分析 数据结构 顺序表 链表 栈 队列 双端队列 排序与搜索 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 常见排序算法效率比较 搜索 树与树算法 二叉树 二叉树的遍历 补充: 什么是算法 算法是独立 ...
分类:
编程语言 时间:
2018-06-03 19:25:28
阅读次数:
267