数据结构与算法
浮生了大白
保持初心,坚持学习
展开
-
python链表操作
链表中的基本要素:结点(也可以叫节点或元素),每一个结点有两个域,左边部份叫值域,用于存放用户数据;右边叫指针域,一般是存储着到下一个元素的指针 head结点,head是一个特殊的结节,head结点永远指向第一个结点 tail结点,tail结点也是一个特殊的结点,tail结点永远指向最后一个节点 None,链表中最后一个结点指针域的指针指向None值,因也叫接地点,所以有些资料上用电气上...原创 2018-08-22 09:20:53 · 6830 阅读 · 2 评论 -
C++ 单链表基本操作分析与实现
链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。 创建头节点 手动new一个新的Node,将Node...转载 2018-10-30 10:30:55 · 1876 阅读 · 0 评论 -
希尔排序(java)
package cho8;// 希尔排序public class ShellSort {// 排序方法 public static void sort(long[] arr) {// 初始化间隔 int h = 1; // 计算最大间隔 while(h < arr.length / 3) { h = h * 3 + 1; } while(h...原创 2018-09-23 10:22:30 · 199 阅读 · 0 评论 -
冒泡排序,插入排序,选择排序(java)
package ch02;public class BubbleSort { public static void sort(long[] arr) { long temp = 0; for(int i = 0; i < arr.length - 1; i ++) { for (int j = arr.length - 1; j > 0; j --) { ...原创 2018-09-23 10:01:33 · 151 阅读 · 0 评论 -
哈希表(2)开放地址法
package ch16;import java.math.BigInteger;public class HashTable { private Info[] arr; // 默认构造方法 public HashTable() { arr = new Info[10000]; } // 指定数组初始化大小 public HashTable(int maxSiz...原创 2018-09-26 15:13:07 · 400 阅读 · 0 评论 -
哈希表(1)java
package ch15;// 员工信息类 public class Info { private String key; private String name; public Info(String key,String name) { this.key = key; this.name = name; } public String getKey(...原创 2018-09-26 14:16:48 · 228 阅读 · 0 评论 -
快速排序(java)
package ch09;// 快速排序public class QuickSort {// 划分数组 public static void partition(long arr[], int left, int right,int point) { int leftPtr = left - 1; int rightPtr = right - 1; while(t...原创 2018-09-23 12:35:09 · 182 阅读 · 0 评论 -
数据结构:链表的原理及java实现
【数据结构】链表的原理及java实现 一:单向链表基本介绍链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而LinkedList的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。下面对单向链表做一个介绍。单向链表是一种线性表,实际上是由节点(Node)组成的,一个链表拥有不定数量的节点。其数据在内存中存...转载 2018-08-21 21:40:37 · 223 阅读 · 1 评论 -
冒泡排序
1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。 ...转载 2018-08-21 09:19:45 · 115 阅读 · 0 评论 -
快速排序
有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放...转载 2018-08-21 09:22:16 · 140 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
一、后缀表达式求值后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下:1)遍历表达式,遇到的数字首先放入栈中,此时栈如下所示:2)接着读到“+”,则弹出3和2,执行3+2,计算结果等于5,并将5压入到栈中。3)读到8,将其直接放入栈中。4)读到“*”,弹...转载 2018-11-16 14:22:51 · 239 阅读 · 0 评论