自己实现LinkedListJAVA103-104
来源:互联网 发布:淘宝实战培训 编辑:程序博客网 时间:2024/05/18 07:04
来源:http://www.bjsxt.com/
1、S02E103_01自己实现LinkedList
package com.test.linkedlist;/** * 用来表示一个节点 */public class Node { Node previous;//该节点的前一个节点 Object obj;//该节点存放的对象 Node next;//该节点的后一个节点 public Node(){ } public Node(Node previous, Object obj, Node next) { super(); this.previous = previous; this.obj = obj; this.next = next; } public Node getPrevious() { return previous; } public void setPrevious(Node previous) { this.previous = previous; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; }}////////////////////////////////////////package com.test.linkedlist;public class MyLinkedList { private Node first; private Node last; private int size; public void add(Object obj){ Node n = new Node(); if(first == null){ n.setPrevious(null); n.setObj(obj); n.setNext(null); first = n;//第一个节点 last = n;//也是最后一个节点 }else{ //直接往last节点后增加新的节点 n.setPrevious(last); n.setObj(obj); n.setNext(null); last.setNext(n);//之前的last指向下一个节点n(之后的last) last = n;//n为最后一个节点 } size++; } public int size(){ return size; } public Object get(int index){ Node temp = getNode(index); return temp.obj; } //index越界处理 public void rangeCheck(int index){ if(index < 0 || index >= size){ try { throw new Exception(); } catch (Exception e) { e.printStackTrace(); } } } public Node getNode(int index){//获得相应索引的节点 rangeCheck(index); Node temp = null; if(first != null){ temp = first; for (int i = 0; i < index; i++) {//遍历节点 temp = temp.next; } } return temp; } public void remove(int index){ Node temp = getNode(index); if(temp != null){ Node up = temp.previous; Node down = temp.next; up.next = down; down.previous = up; size--; } } public void add(int index,Object obj){ Node temp = getNode(index); Node newNode = new Node(); newNode.obj = obj; if(temp != null){ Node up = temp.previous; up.next = newNode; newNode.previous = up; newNode.next = temp; temp.previous = newNode; size++; } } public static void main(String[] args) { MyLinkedList list = new MyLinkedList(); list.add("aaa"); list.add("bbb"); list.add("ccc");// list.remove(1); list.add(1, "BBB"); System.out.println(list.get(1)); }}
0 0
- 自己实现LinkedListJAVA103-104
- 自己实现自己的String.....
- 实现函数自己调用自己
- 实现自己的HibernateCallBack
- 自己实现 strcmp
- 实现自己的dynamic_cast
- 自己实现一个Factory
- 自己实现DataKeyNames
- 自己实现一个Comparer
- 自己实现一个Semaphore
- 自己实现磁盘格式化
- 实现自己的HibernateCallBack
- 自己实现迷你vector
- 实现自己的HibernateCallBack
- 自己实现assert
- 自己实现事件监听
- 自己实现atoi系列
- 自己实现strcat();
- Linux进程间通信——使用命名管道
- NOJ 5533 c语言
- 处理elasticsearch中的NODENOTAVAILABLEEXCEPTIONS异常
- Oracle数据库中插入日期型数据
- android 进度条设置显示格式
- 自己实现LinkedListJAVA103-104
- hadoop源码学习(一)--configuration类详解
- 小记2015-11-9
- 零长度数组解析
- NOJ 5538 c语言
- Linux进程间通信——使用信号量
- 面向业务的立体化高可用架构设计
- 《leetCode》:Multiply Strings
- 编程之美-求数组中最长递增子序列(LIS)方法整理