1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的线性表。今天,要介绍的是线性表的另一种实现方式 链表。 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构。但是,链表内部存储数据的方式却和向量大不相同:链表的核心是节点。节点存储"数据"的同时还维护着"关联节点的引用 ...
分类:
编程语言 时间:
2018-12-02 20:36:16
阅读次数:
160
1.向量介绍计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址。为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为数组(Array)的数据结构与之对应。在使用数组时需要事先声明固定的大小以便程序在运行时为其开辟内存空间;数组通过下标值计算出地址偏移量来对内部元素进行访问。 可以看到,原始的数组很基础,所以运行效率非常的高。但同时也存在着严重的问题:1.由于数组的大小需要
分类:
编程语言 时间:
2018-11-25 17:42:24
阅读次数:
210
冒泡排序 通过两重循环来实现冒泡排序法, 外层的for循环用来从头开始遍历数组内的所有的元素. 内循环从数组的最后的一个元素开始便利, 每次遍历的次数等于元素总数减去排好的元素的数量, 这通过for 循环内的 j > i; 条件来实现, 每当我们正确的排好一个元素, i就加1. 内层的if判断语句实 ...
分类:
编程语言 时间:
2018-11-18 11:26:16
阅读次数:
165
目录 (1)数据结构与算法概念解析 (2)数据结构之数组 (3)数据结构之栈 (4)数据结构之队列 (5)数据结构之链表 (6)数据结构之二叉树 (7)数据结构之霍夫曼树 (8)数据结构之红黑树(一)——基础分析 (9)数据结构之红黑树(二)——插入操作 (10)数据结构之红黑树(三)——删除操作 ...
分类:
编程语言 时间:
2018-11-15 21:19:09
阅读次数:
166
Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties) 以上这些 ...
分类:
编程语言 时间:
2018-11-12 17:46:04
阅读次数:
128
学号 20172326 《程序设计与数据结构》第七周学习总结 教材学习内容总结 AVL树 AVL树是实现平衡二叉树的一种算法实现,别的方法也可实现例如红黑树。 平衡因子:右子树高度 左子树高度的差值(高度是指当前结点到叶子结点的最长路径,如所有叶子结点的高度都为0,而深度则是指从根结点到当前结点的最 ...
分类:
其他好文 时间:
2018-11-03 02:09:32
阅读次数:
149
这里介绍几种数据结构在Java中的实现,其实之前写了几篇文章介绍数据结构,只写了栈和队列。现在准备介绍一下 1.数组Array 2.栈Stack 3.队列Queue 4.链表Linked List 5.哈希表Hash 6.堆Heap 7.图Graph 8.树Tree ...
分类:
编程语言 时间:
2018-11-01 12:03:27
阅读次数:
149
Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举 (Enumeration) 位集合(BitSet) 向量 (Vector) 栈 (Stack) 字典 (Dictionary) 哈希表 (Hashtable) 属性 (Properties ...
分类:
编程语言 时间:
2018-10-19 18:46:38
阅读次数:
144
常用的八种排序算法 1.直接插入排序 我们经常会到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对第四个数、第五个数……直到最后一个数,重复第二步。如题所示: 直接插入排序(Straight Insert ...
分类:
编程语言 时间:
2018-10-19 00:15:29
阅读次数:
188
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。 本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法 ...
分类:
编程语言 时间:
2018-10-19 00:05:56
阅读次数:
171