java数据结构博客园_常见数据结构的Java实现
单链表的Java实现
首先参考wiki上的单链表说明,单链表每个节点包含数据和指向链表中下一个节点的指针或引用。然后看代码
import java.lang.*;
public class SinglyLinkeList
{
Node start;
public SinnglyLinkedList()
{
this.start=null;
}
public void addFront(Object newData)
{
Node cache = this.start; //store a reference to the current start node
this.start = new Node(newData,cache); //assign our start to a new node that has newData and points to our old start
}
public addRear(Object newData)
{
Node cache = start;
Node current = null;
while((current = cache.next) != null) //find the last Node
cache = cache.next;
cache.next = new Node(newData,null); //create a new node that has newData and points to null
}
public Object getFront()
{
return this.start.data; // return the front object's data
}
public class Node
{
public Object data; //the data stored in this node
public Node next; //store a reference to the next node in this singlylinkedlist
public Node(Object data,Node next){
this.data =data;
this.next =next;
}
}
}
单链表翻转的Java实现
循环方式
public static LinkedList reverse(LinkedList Node) {
LinkedList previous = null;
while (Node != null) {
LinkedList next = Node.next;
Node.next = previous;
previous = Node;
Node = next;
}
return previous;
}
package linkedlists;
public static LinkedList reverse(LinkedList node) {
LinkedList headNode = new LinkedList(1);
快速排序的Java实现
public class QuickSort {
public static int SIZE = 1000000;
public int[] sort(int[] input) {
quickSort(input, 0, input.length-1);
return input;
}
public static void main(String args[]){
int[] a = new int[SIZE];
for(int i=0;i
a[i] = (int)(Math.random()*SIZE);
}
QuickSort mNew = new QuickSort();
long start = System.currentTimeMillis();
mNew.sort(a);
long end = System.currentTimeMillis();
System.out.println("Time taken to sort a million elements : "+(end-start)+" milliseconds");
}
public void print(int[] inputData) {
for(int i:inputData){
System.out.print(i+" ");
}
System.out.println();
}
private void quickSort(int arr[], int left, int right) {
int index = partition(arr, left, right);
if (left < index - 1)
quickSort(arr, left, index - 1);
if (index < right)
quickSort(arr, index, right);
}
private int partition(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
return i;
}
}
java数据结构博客园_常见数据结构的Java实现相关推荐
- python 面试题 博客园_常见的python面试问题1
雷锋网按:本文为 AI 研习社编译的技术博客,原文 Top 35 Python Interview Questions and Answers in 2018 ,作者 DataFlair Team. ...
- java list 博客园_Java集合系列(一)List集合
List的几种实现的区别与联系 List主要有ArrayList.LinkedList与Vector几种实现. ArrayList底层数据结构是数组, 增删慢.查询快; 线程不安全, 效率高; 不可以 ...
- python博客园_用Python向博客园发布新文章
最近在开发一个博客系统,经常把写的东西放在自己网站的博客上(之前写在Onenote),然后我在博客园也申请了一个博客,就有了同样一篇文章,我需要复制粘贴排版分别提交两次的情况.于是我就想能不能在我的网 ...
- java知识点博客园_JAVA基础知识回顾
JAVA基础知识回顾 一.背景介绍 JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platfo ...
- java 入门 博客园_java入门基础
什么是java? java是一门编程语言 编程语言有很多种 你比如 C语言 等等 为什么学习java呢! 因为你要和计算机交互 当然了你用汉语跟她说她听不懂 所以你要学习编程语言 那么额咱们的ja ...
- java ee 博客园_JAVAEE 介绍
软件151 雷楷文 1. 为什么需要JavaEE 我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展.当业务需求发生变化的时候,对于程序员和美工都是一 ...
- java数据结构博客园_Java数据结构
一.线性数据结构 1.Java一维数组的创建 (1)预先定义数组的内存空间 int[] arr = new int[3]; // new int[3]是代表创建3个内存地址空间 // 地址空间的序号是 ...
- java orm框架 博客园_自己写ORM框架 DBUtils
ORM框架想必大家都比较熟知了,即对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同 ...
- java 金融面试题目_面试题 - java金融 - 博客园
1,什么是线程安全 (参考书:https://book.douban.com/subject/10484692/) 不对共享变量进行修改 2,都说String是不可变的,为什么我可以这样做呢 Stri ...
最新文章
- 双节棍「大师」鱼佬亲传武功秘籍:如何进行一场数据挖掘算法竞赛?
- python模拟登录qq账号密码_最新的Python模拟登陆QQ脚本,一键批量登录,强行过验证!...
- java 类之间数据传递_java类之间数据传递问题
- ideal2018提示内存不足_IntelliJ IDEA 2018 设置代码超出限制自动换行(最新版)
- 复旦大学计算机科学院夏令营,2020年复旦大学计算机科学技术学院夏令营接收推免生条件...
- libreoffice_利用Excel或LibreOffice的业务输入进行单元测试约束
- java类编写sql_用JavaBean编写SQL Server数据库连接类
- soap rest_这是我对REST的后续工作,是新的SOAP:让我们谈谈原始REST
- oracle 创建一揽子协议,Oracle PO - 模块一揽子采购协议小结
- java编程线程怎么处理_java编程多线程并发处理的教程
- Eclipse+JBoss+MySQL开发环境设置全攻略
- spring揭秘 读书笔记 六 bean的一生
- 不小心误删除Mac苹果系统联系人和Safari浏览器书签信息如何恢复?
- BZOJ1861:[ZJOI2006]书架——题解
- keil4 c51安装教程
- 关于flash跨域问题
- 关于EPCS系列芯片的说明
- NYOJ-171 聪明的kk
- java线程锁有哪几种_Java锁有哪些种类,以及区别
- VMware安装国产化操作系统--统信UOS
热门文章
- 在任何无法理解的情况下,请编写脚本
- jaxb 映射 空字段_推土机:将JAXB对象映射到业务/域对象
- 读取csv文件 java_Java:逐步读取/流式传输CSV文件
- Java命令行界面(第30部分):观察
- java堆内存和堆外内存_Java堆空间,本机堆和内存问题
- java调用怎么调用方法区_Java中的方法调用有多昂贵
- Java EE 8,当前状态是什么:自2015年底以来已完成工作的案例研究
- 影场与属性访问器界面
- junit4 单元测试框架_超越JUnit –测试框架的替代方案
- TIBCO产品的微服务和DevOps