单链表的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实现相关推荐

  1. python 面试题 博客园_常见的python面试问题1

    雷锋网按:本文为 AI 研习社编译的技术博客,原文 Top 35 Python Interview Questions and Answers in 2018 ,作者 DataFlair Team. ...

  2. java list 博客园_Java集合系列(一)List集合

    List的几种实现的区别与联系 List主要有ArrayList.LinkedList与Vector几种实现. ArrayList底层数据结构是数组, 增删慢.查询快; 线程不安全, 效率高; 不可以 ...

  3. python博客园_用Python向博客园发布新文章

    最近在开发一个博客系统,经常把写的东西放在自己网站的博客上(之前写在Onenote),然后我在博客园也申请了一个博客,就有了同样一篇文章,我需要复制粘贴排版分别提交两次的情况.于是我就想能不能在我的网 ...

  4. java知识点博客园_JAVA基础知识回顾

    JAVA基础知识回顾 一.背景介绍 JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platfo ...

  5. java 入门 博客园_java入门基础

    什么是java? java是一门编程语言  编程语言有很多种 你比如 C语言 等等 为什么学习java呢! 因为你要和计算机交互  当然了你用汉语跟她说她听不懂 所以你要学习编程语言 那么额咱们的ja ...

  6. java ee 博客园_JAVAEE 介绍

    软件151  雷楷文 1.  为什么需要JavaEE 我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展.当业务需求发生变化的时候,对于程序员和美工都是一 ...

  7. java数据结构博客园_Java数据结构

    一.线性数据结构 1.Java一维数组的创建 (1)预先定义数组的内存空间 int[] arr = new int[3]; // new int[3]是代表创建3个内存地址空间 // 地址空间的序号是 ...

  8. java orm框架 博客园_自己写ORM框架 DBUtils

    ORM框架想必大家都比较熟知了,即对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同 ...

  9. java 金融面试题目_面试题 - java金融 - 博客园

    1,什么是线程安全 (参考书:https://book.douban.com/subject/10484692/) 不对共享变量进行修改 2,都说String是不可变的,为什么我可以这样做呢 Stri ...

最新文章

  1. 双节棍「大师」鱼佬亲传武功秘籍:如何进行一场数据挖掘算法竞赛?
  2. python模拟登录qq账号密码_最新的Python模拟登陆QQ脚本,一键批量登录,强行过验证!...
  3. java 类之间数据传递_java类之间数据传递问题
  4. ideal2018提示内存不足_IntelliJ IDEA 2018 设置代码超出限制自动换行(最新版)
  5. 复旦大学计算机科学院夏令营,2020年复旦大学计算机科学技术学院夏令营接收推免生条件...
  6. libreoffice_利用Excel或LibreOffice的业务输入进行单元测试约束
  7. java类编写sql_用JavaBean编写SQL Server数据库连接类
  8. soap rest_这是我对REST的后续工作,是新的SOAP:让我们谈谈原始REST
  9. oracle 创建一揽子协议,Oracle PO - 模块一揽子采购协议小结
  10. java编程线程怎么处理_java编程多线程并发处理的教程
  11. Eclipse+JBoss+MySQL开发环境设置全攻略
  12. spring揭秘 读书笔记 六 bean的一生
  13. 不小心误删除Mac苹果系统联系人和Safari浏览器书签信息如何恢复?
  14. BZOJ1861:[ZJOI2006]书架——题解
  15. keil4 c51安装教程
  16. 关于flash跨域问题
  17. 关于EPCS系列芯片的说明
  18. NYOJ-171 聪明的kk
  19. java线程锁有哪几种_Java锁有哪些种类,以及区别
  20. VMware安装国产化操作系统--统信UOS

热门文章

  1. 在任何无法理解的情况下,请编写脚本
  2. jaxb 映射 空字段_推土机:将JAXB对象映射到业务/域对象
  3. 读取csv文件 java_Java:逐步读取/流式传输CSV文件
  4. Java命令行界面(第30部分):观察
  5. java堆内存和堆外内存_Java堆空间,本机堆和内存问题
  6. java调用怎么调用方法区_Java中的方法调用有多昂贵
  7. Java EE 8,当前状态是什么:自2015年底以来已完成工作的案例研究
  8. 影场与属性访问器界面
  9. junit4 单元测试框架_超越JUnit –测试框架的替代方案
  10. TIBCO产品的微服务和DevOps