Java简单实现链表增删排
来源:互联网 发布:linux强制退出不保存 编辑:程序博客网 时间:2024/05/17 04:18
第一次用Java写算法实现,相比较C,不同free,用类代替结构体,只能用两个字形容:那酸爽~
package com.lqb.test;class LinkedList {Node head = null; //添加节点public void addNode(int data) {Node node = new Node(data);if (head == null) {head = node;} else {//头插法// node.next = head.next;// head.next = node;Node temp = head;while (temp.next != null) {temp = temp.next;}temp.next = node;}} //删除节点public void deleteNode(int index){if(index > 0 && index < length()){Node temp = head;int i = 2;if(index == 1){head = head.next;return;}while(i < index){temp = temp.next;i++;}Node deleteOne = temp.next;temp.next = deleteOne.next;// no need to free deleteOne 'cause GC works}}/** * 排序:把值对调就行了,第一次能把物理位置也换了的人只有我了 */public void orderList(){if(head == null)return;int length = length();int temp = 0;Node preNode = null;Node currentNode = null;for(int i = 1;i < length;i++){preNode = head;//应该在第一层循环赋值,在外面赋值导致空指针的人只有我了currentNode = head.next;for(int j = i+1;j <= length;j++){if(preNode.data > currentNode.data){temp = currentNode.data;currentNode.data = preNode.data;preNode.data = temp;}preNode = currentNode;currentNode = currentNode.next;}}} //求长度public int length(){if(head == null)return 0;int length = 0;Node temp = head;while(temp != null){length++;temp = temp.next;}return length;}public void print() {Node temp = head;while (temp != null){System.out.println(temp.data);temp = temp.next;}}public static void main(String[] args) {LinkedList list = new LinkedList();list.addNode(6);list.addNode(2);list.addNode(9);list.addNode(4);list.addNode(7);list.addNode(1);list.addNode(5);list.print();System.out.println("********************");//System.out.println(list.length());list.deleteNode(4);list.print();System.out.println("********************");list.orderList();list.print();}}/** * Node节点 */class Node {Node next = null;int data;public Node(int data) {this.data = data;}}
0 0
- Java简单实现链表增删排
- java实现链表,增删改查
- Java实现链表的增删排序
- 快排简单实现
- 用Java语言实现链表的增删改查
- 数据结构之链表的增删操作的Java实现
- JAVA实现单向链表的增删操作
- 快排-java实现
- 快排java实现
- 快排--java实现
- java实现堆排
- 桶排 java实现
- 快排java实现
- Java快排实现
- java实现 快排
- js 简单快排实现
- python实现链表增删
- 初学Hibernate,简单实现单表的增删查改
- js-DOM给class追加一个新的元素
- Git和SVN之间的五个基本区别
- WebCamTexture
- springmvc上传文件出现的一些状况
- Android学习之 Intent显示和Intent隐式
- Java简单实现链表增删排
- 5-1、Spark环境搭建
- Codeforce 567C(Geometric Progression) 奇淫巧计...
- 最短路spfa POJ 1502 MPI Maelstrom
- Google Java 编码规范
- maven: Unable to add module to the current project
- [PHP]从脚本页面到Mysql数据库的各种中文乱码问题
- jQuery对象与DOM对象之间的转换
- Linux 网络编程 IP协议