
数据结构
ncc1995
这个作者很懒,什么都没留下…
展开
-
数据结构 单链表实现
参考大话数据结构头插法创建链表 尾插法创建链表 链表任意位置插入 链表任意位置删除 将链表打印出来 测试链表package list;public class SingleLinkedList { int size; Node head; //定义一个头结点表示头指针 SingleLinkedList(){ size = 0; head = new Nod...原创 2018-12-28 21:19:17 · 150 阅读 · 0 评论 -
【JAVA】数据结构之最短路径问题
遇到的问题都写在注释里面了。package graph;/* * 还是整个原理没记清,前几天看的,今天已经忘记了好多。 * 只是看了一个创建一个数组表示起点到各个顶点的距离这个思想, * 就自己写出来这个程序,还是比较满意的。 * * 忘记的原理: * 1、计算的是起点到各个顶点的距离,所以更新距离那里不应该只计算当前顶点到 * 其他顶点的距离,而是要加上起始顶点到当前...原创 2019-03-14 20:38:43 · 304 阅读 · 0 评论 -
【JAVA】数据结构之拓扑排序
拓扑排序是针对有向图的。对于环不可进行拓扑排序。简单理解是不断循环寻找没有后继节点的顶点,将顶点放入数组即可。(今天不太想认真整理,遇到的问题都注释在代码里了。)package graph;public class topo { int MAX_VERTS; int nVerts; Vertex vertList[]; int adjMat[][]; char so...原创 2019-03-07 11:21:03 · 201 阅读 · 0 评论 -
【剑指Offer】之链表反向打印和重建二叉树
链表反向打印题目描述:从尾到头反过来打印出每个结点的值。三种方法:递归 利用头插法的性质 栈第二个和第三个都没有问题,问题出现在了递归上。根据参考的代码,递归这样写: public static ArrayList<Integer> printListReversed(ListNode listnode) { ArrayList<Integer...原创 2019-03-09 16:36:41 · 206 阅读 · 0 评论 -
【JAVA】数据结构之深度优先算法
图:顶点 边顶点:数据项 标志位class Vertex{ public char label; boolean wasVisited; public Vertex(char lab) { label = lab; wasVisited = false; }}顶点用数组存储,设置最大长度,设置一个变量nVerts记录顶点个数。边:用邻接矩阵表示...原创 2019-03-06 20:42:34 · 598 阅读 · 0 评论 -
【JAVA】 数据结构之归并排序
归并排序分为三个模块:merge():创建一个新的数组,作为排序前和排序后的过渡。 recMerge():采用分治策略,用递归将数组不断对半分成小数组,直到只剩一个数值的时候。 mergeSort():将第二步产生的数组进行归并排序。package sort;public class mergeSorted { private long[] theArray; priv...原创 2019-03-05 19:47:21 · 152 阅读 · 0 评论 -
Python 实现快速排序
快速排序采用了一种分治策略,它的基本思想是:先从数组中选取一个数作为基准数。 对数组进行分区,将比基准数大的数放在它的右边,小的放在左边。 对左右区间重复执行第二步,直到只有一个数为止。对数组进行分区,有三种方法:暴力执行,遍历数组,将比基准数小的和大的分别都放进一个新的数组,再将数组与基准数进行拼接。 挖坑填数法。 交换顺序法。暴力法这个方法很简单,代码先不写了。挖坑...原创 2019-02-28 09:26:09 · 249 阅读 · 0 评论 -
【JAVA】数据结构之 栈和队列
栈栈为后进先出:isFull()判断栈是否已满,isEmpty()判断栈是否为空:设置一个变量nitems,当nitems=MaxSize时,即为满;当nitems=0时,即为空;push()入栈函数:先判断栈是否已满,再将数据入栈;pop()出栈函数:先判断栈是否为空,再进行出栈操作。------------------------------------...原创 2019-02-16 10:17:11 · 318 阅读 · 0 评论 -
【JAVA】数据结构之双向链表
啊,写完了双端之后,双向就好写多了,重点是改变结点的next指向的时候,一定要一起把previous改了,并且要注意可能在last结点处进行指向修改时存在的的null情况。package linkList;/* * 结点定义 */class doublyNode{ Object data; doublyNode next; doublyNode previous; pu...原创 2019-01-31 18:04:02 · 580 阅读 · 0 评论 -
Java 数据结构之双端链表
写双端链表简直是写双向链表的基础,重点是插入和删除操作时对first以及last结点的修改。其他的就没啥了吧。package linkList;/* * 结点定义 */class Node{ Object data; Node next; public Node(Object d) { this.data = d; this.next = null; } ...原创 2019-01-31 18:03:20 · 180 阅读 · 0 评论 -
Java 数据结构之单链表
之前好像写过一次单链表,好吧,不只一次了,每次写到单链表就做其他的事情,然后想学数据结构的时候又要从单链表开始写,就像背单词每次都被abandon一样。单链表是几天前写的了,可能有一些错误,在这里也先不修改了,因为觉得操作和后面要整理的双端链表还有循环链表大同小异。先把代码粘上来吧,因为怕拖着拖着就越来越懒得整理。package linkList;/* * 定义一个链表 * 头插...原创 2019-01-31 17:47:38 · 164 阅读 · 0 评论 -
【JAVA】数据结构之带权图的最小生成树
/** 无向图的带权图最小生成树** 如果终点已经在树中,则不能添加边* 当终点在队列中但是不在树中时才能与新添加的边比较** mstw():先判断三个条件,三个条件都不满足就将边putInQ,* 放进去之后,再从队列中弹出一个权值最小的边边,将末尾的结* 点作为下一个起始结点,打印弹出的边边的起始顶点来表示边边。** putInQ():如果队列中已经...原创 2019-03-11 16:11:28 · 945 阅读 · 0 评论